记一次全回显ssrf到任意文件读取的挖掘
SSRF(Server-Side Request Forgery,服务端请求伪造)是一种安全漏洞,其原理是:应用程序在后端代替用户向外部地址发起请求时,未对用户可控的 URL 输入进行严格校验,导致攻击者可构造恶意地址(如 file:///etc/passwd)诱使服务器访问本应隔离的本地文件、内网服务或云平台元数据,从而绕过网络边界限制,实现敏感信息读取、内网探测甚至远程代码执行。其本质是“借服务器之手,访问攻击者自身无法直接触达的资源”。
漏洞探测
访问目标站点后,发现一个人脸算法分析平台,支持“新建任务”与“刷新列表”功能。

新建任务时,除本地上传外

图中包含一个功能点允许远程加载图片,可以使用http/https协议。这里是 SSRF 的典型高危入口。

构造 DNSLog 外联请求,服务器成功发起 DNS 查询,那么可以确认存在ssrf漏洞。但前端仅返回“上传成功”,无内容回显。如何去利用呢?
漏洞利用
尝试访问内网服务:
1 | |

返回错误,推测存在 IP 黑名单。改用localhost绕过

成功返回响应,包含一串字符(如 a1b2c3d4)及图片大小信息。
分析业务逻辑:该功能需存储远程图片供后续查看。通过正常上传图片并抓包观察刷新接口,发现图片实际访问路径为:
1 | |

由此推断:SSRF 返回的字符串即为服务端存储路径标识
前端虽限制协议为 http/https,但后端未做校验。抓包将请求协议替换为file:
1 | |

漏洞成果
上传成功,访问对应路径 /xxxx/xxxx/a1b2c3d4,成功读取/etc/passwd内容

进一步读取敏感历史记录:
1 | |
成功获取 root 用户操作历史

记一次全回显ssrf到任意文件读取的挖掘
https://oxshadow.github.io/2026/02/03/记一次全回显ssrf到任意文件读取的挖掘/