首页/安全/渗透测试与安全评估速查/SSRF 验证方法(服务端请求伪造)
常见漏洞验证121 条

SSRF 验证方法(服务端请求伪造)

当服务端请求目标由用户可控时,验证其是否能触达内网或本机资源;聚焦 URL 参数、webhook、图片抓取与文档转换类功能。

SSRF 验证是什么

SSRF(Server-Side Request Forgery,服务端请求伪造)指服务端根据用户可控输入去发起请求,典型入口是 URL 参数、webhook 回调地址、头像与图片抓取、文档在线预览。攻击者可借此让服务器访问本应不可达的资源,例如内网服务或本机端口。验证的重点不是打通内网,而是判断请求目标是否由用户完全控制、以及服务端是否做了目标校验。常见做法是把目标 URL 换成自建的可控地址,观察回显服务是否收到来自应用服务器的请求,再对比内网地址与公网地址的响应差异。云元数据地址一律不主动请求。

基本信息

风险类型服务端请求伪造,CWE-918
典型入口URL 参数、回调地址、头像或图片抓取、文档预览
验证方式指向自建回显服务,观察请求到访与响应差异
边界不做端口扫描式利用,不请求云元数据地址
修复方向地址白名单、协议限制、禁止跟随跳转、出网管控

典型使用场景

  • 图片与头像抓取:填一个外部 URL 让服务端下载
  • 文档在线预览:服务端拉取用户提交的文档地址
  • webhook 回调:配置回调地址后由服务端发起请求
  • URL 导入:博客导入、订阅源抓取、书签解析
  • 代理与转换接口:图片压缩、截图、PDF 生成类服务

验证流程

验证流程
1. 用自建可控地址(如内部测试机)替换目标 URL 参数
2. 在回显服务上确认是否收到来自应用服务器的请求
3. 对比内网地址与公网地址的响应差异,判断校验缺失
4. 检查是否可绕过(跳转、短链、编码变体)——仅记录思路
5. 记录请求样本与网络路径(脱敏),不深入利用

常见防护与缺口

防护措施说明常见缺口
域名白名单仅允许特定域名白名单域名存在跳转或不校验路径时可被利用
协议限制只允许 http/https其他协议与大小写、编码变体需一并核查
禁止内网地址过滤 127.0.0.1、10.0.0.0/8 等过滤不完整,可被进制或短写形式绕过
禁止跟随跳转不自动重定向未关闭跳转时,公网地址可跳向内网
出网与 DNS 管控限制服务器可访问的网络DNS 重绑定可绕过前期校验
不要在授权外做端口探测式 SSRF 利用;云元数据地址一律不主动请求,改用配置核查判断防护是否到位。
修复视角:优先使用地址白名单;无法白名单时,需在解析后校验目标 IP,限制协议与端口,禁止跟随跳转,并对出网流量做统一管控。

易错点

  • 只测试 http:// 写法,忽略其他协议与重定向场景,漏掉真实可利用路径
  • 忽略重定向导致目标地址被二次改写,白名单可被跳转绕过
  • 主动请求云元数据地址,可能拿到敏感凭据,属于越界且有真实风险
  • 以能请求到内网地址作为唯一判据,忽略 DNS 重绑定等延迟解析场景

数据来源与参考

  • OWASP Cheat Sheet:Server Side Request Forgery Prevention
  • CWE-918
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌