SuperAPI AI 工具集

hunt-ssrf

安全与审计

查看项目

更新于 10-15 09:36

技能介绍

用途

hunt-ssrf 是一个专注于 SSRF(服务端请求伪造)漏洞挖掘的技能,由 15 份公开漏洞赏金报告构建而成,其中包括 AWS 元数据 SSRF 等真实案例。它用于在获得授权的安全测试中,系统化地发现、确认并升级 SSRF 漏洞。

主要能力

高价值目标识别

SSRF 在目标运行于云基础设施(AWS、GCP、Azure)时价值最高,因为元数据服务会暴露凭证;或当服务器处于复杂内网(Kubernetes 集群、微服务网格、内部 API)时同样高价值。优先目标包括:云托管 SaaS 产品、Kubernetes/编排平台、内部开发者工具(CI/CD、Flyte、Argo)、链接预览/URL 抓取功能、数据集/文件导入管道、企业自托管软件(GitHub Enterprise、GitLab)。

OOB 确认门槛

盲 SSRF 的判定必须经过带外确认,无一例外。可用 Burp Collaborator、interactsh-client、canarytoken 或任何自控的 DNS+HTTP 接收器。以下不算确认:服务器在错误消息中回显你的 URL、内外 URL 返回不同状态码、响应延迟。以下才算确认:OOB 监听器中出现你唯一子域名的 DNS 查询、你的 HTTP 端点收到服务器源 IP 的请求、或在 JS 执行环境(PDF 渲染器、无头浏览器)中的回调抓取。

参数归因

回调只能证明服务器发起了请求,不能说明是哪个参数触发的。应为每个候选参数生成独立载荷,一次只发一个请求,逐个轮询;无回调的参数同样是有价值的证据(负对照),能帮助客户修复正确的字段。

盲读与完整回读

回调确认请求离开服务器后,需检查上游响应体是否返回给你。盲读(仅回调、无响应体)单独提交通常不成立,需要触达内部服务或返回数据才可报告;完整回读(响应中包含上游响应体)危害显著更高。可用已知响应体的目标测试,并对内部与外部目标做响应体差异比对。

攻击面信号

关注 URL 模式(/api//preview、/api//fetch、/api//import、/api//proxy、/api/*/render 等,以及 ?url=、?uri=、?endpoint=、?redirect=、?src= 等参数)、客户端 JS 中的 fetch(userInput) / axios.get(params.url)、响应头信号(X-Forwarded-For、Server: internal-service、Via、X-Cache)、技术栈信号(Kubernetes 聚合 API、GCP 上抓取 URL 的服务、Node.js/Python 的 URL 抓取库、无头浏览器、XML/DSPL/CSV 导入、OAuth/webhook 注册端点)。

使用方式

  1. 映射目标上所有 URL 输入参数:爬取 JS 文件中的 fetch 调用、查看 API 文档、寻找文件导入/链接预览/webhook/图片代理/重定向功能。
  2. 搭建 OOB 检测服务器(Burp Collaborator、interactsh 或 canarytokens.org)。
  3. 先发送回调 URL 验证服务器是否发起出站连接:url=https://YOUR.interactsh.com/test。
  4. 测试内部云元数据端点:GCP(metadata.google.internal/computeMetadata/v1/)、AWS(169.254.169.254/latest/meta-data/)、Azure(169.254.169.254/metadata/instance)。
  5. 测试 localhost 与常见内部端口(6443 Kubernetes API、2379 etcd、9090 Prometheus、9200 Elasticsearch 等)。
  6. 检查基于重定向的 SSRF:托管一个指向内部地址的 301/302 重定向服务器。
  7. 测试 JS 执行环境(无头浏览器、PDF 渲染器):注入 script 标签发起 XHR/fetch,或通过 DNS 编码外带数据。
  8. 通过响应时间与错误差异枚举内网。
  9. 串联发现:未认证管理端点、Redis/memcached 协议走私、内部 OAuth 令牌端点、SSRF→CSRF→RCE。
  10. 报告前记录完整利用链及每一跳的截图。

代码片段示例:

# Using interactsh-client
interactsh-client -v

# Test parameter
curl -s "https://target.com/api/preview?url=https://YOUR_ID.oast.pro"

ffuf 参数发现:

ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
  -u "https://target.com/api/endpoint?FUZZ=https://YOUR.callback.com" \
  -fs 0 -mc all

常见根因与绕过技巧

常见根因包括:开发者信任用户提供的 URL 抓取远程资源而无校验;通过重定向绕过允许列表;聚合/代理 API 盲目转发 30x 响应;无沙箱的服务端渲染;XML/DSPL/文件解析器抓取外部实体;通过响应差异泄漏内部主机名;IMDSv1 仍启用。

绕过技巧包括:IPv6 等价形式([::1]、[::ffff:127.0.0.1]);十进制/八进制/十六进制 IP 编码;DNS 重绑定;指向内部 IP 的子域名(localtest.me、nip.io);URL 解析器混淆(http://evil.com@127.0.0.1/);协议混淆(file://、dict://、gopher://、sftp://、ldap://);重定向链绕过;大小写与 URL 编码变体;以及应用层输入编码绕过(过滤看到的内容与抓取器解码后的内容不同)。

适用场景与限制

适用于获得授权的漏洞赏金和渗透测试中,对云托管服务、Kubernetes 平台、内部工具、URL 抓取功能和文件导入管道的 SSRF 挖掘与验证。所有测试必须经过授权。盲 SSRF 单独存在时通常不可直接提交,需进阶到内部服务访问或数据回读。文档未提供该技能的具体安装命令、收费或价格信息。