盲打 SSRF 的验证思路
当服务端发起请求但响应不回显时,需要靠带外回连来确认请求是否真的发出:使用自建或经授权的带外交互平台生成一个唯一域名,把它放进可控的 URL 参数,再观察平台侧是否收到 DNS 或 HTTP 回调。有回调说明服务端确实发起了请求;无回调则要先排除出网受限、DNS 缓存与解析策略等干扰因素,再下结论。
基本信息
| 使用工具 | 经授权的带外交互平台(如 interactsh 类工具) |
|---|---|
| 关键信号 | 回调日志中出现请求来源、时间与协议 |
| 核对要点 | 出网路径、DNS 解析、代理链与防火墙策略 |
| 前提确认 | 目标环境是否允许外联,需与客户先行确认 |
| 边界 | 只确认请求是否发出,不深入内网探测 |
典型使用场景
- 图片抓取、文件下载、URL 预览类功能
- Webhook 配置与第三方回调地址填写处
- 数据导入、格式转换与在线预览接口
- PDF 生成、截图服务与邮件内嵌图片抓取
- 接口文档中标注接受 URL 的开放参数
使用要点
使用要点
# 启动带外客户端,获取本次测试专用的唯一域名
interactsh-client -v
# 把域名放入可控的 URL 参数,触发服务端请求
# 观察客户端侧日志:是否出现 DNS 或 HTTP 回调
# 记录:参数名、提交时间、回调时间、来源 IP、协议类型
# 与应用服务器的出网地址核对,确认回调确由目标发起回调日志读法
| 观察项 | 含义 | 判断要点 |
|---|---|---|
| 回调协议 | DNS 或 HTTP 请求到达 | 仅有 DNS 说明解析发生但未建立连接 |
| 来源地址 | 发起请求的网络出口 | 需与目标应用服务器出口地址核对一致 |
| 时间间隔 | 提交到回调的延迟 | 间隔过长可能是异步任务或队列重试 |
| 重复次数 | 同一域名被请求次数 | 多次回调说明存在重试或多次触发 |
企业出网受限时回调可能被阻断:先与客户确认出网路径,再判断无回调的含义,否则容易得出错误结论。
不要用 SSRF 去访问内网管理接口或云元数据地址做验证,确认请求已发出即已达到验证目的。