【基于带外检测的SSRF盲注——PortSwigger“BlindSSRFwithout-of-banddetection”完整通关指南】

admin 2026-07-15 05:36:50 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文档是PortSwigger靶场BlindSSRFwithout-of-banddetection的通关指南。核心要点是利用OAST方法,在Referer头中注入BurpCollaborator域名,通过后端服务器的异步请求行为验证盲SSRF漏洞。关键发现是响应不回显,需带外交互。可操作建议是使用BurpCollaborator公共服务器,按步骤注入payload并轮询交互记录。 综合评分: 90 文章分类: 渗透测试,漏洞分析,WEB安全,红队,安全工具


cover_image

【基于带外检测的SSRF盲注 —— PortSwigger“Blind SSRF with out-of-band detection”完整通关指南】

原创

卡布奇诺的派对 卡布奇诺的派对

卡布奇诺的派对

2026年7月14日 07:24 河南

在小说阅读器读本章

去阅读

Payload: Referer:http://[random-id].oastify.com

基于带外检测的盲SSRF漏洞

—— PortSwigger“Blind SSRF with out-of-band detection”完整通关指南

🎯 靶场速览

目标:该网站使用分析软件,在加载产品页面时会获取 Referer 头中指定的 URL。需要利用此功能向公共 Burp Collaborator 服务器发起 HTTP 请求以完成实验。

难点:后端服务器在渲染产品页面时,会异步请求 Referer 头中的 URL。但与普通 SSRF 不同,响应内容不会返回给前端,属于“盲 SSRF”。我们需要通过带外(Out-of-Band) 方式来验证攻击是否成功。

关键限制:实验室防火墙会拦截与任意外部系统的交互,必须使用 Burp Collaborator 的默认公共服务器

🚀 分步攻击链

第1步:定位注入点

访问任意产品页面(如某个商品详情页),在 Burp Suite 的 Proxy > HTTP history 中找到该 GET 请求。

💡 关键发现:本关漏洞点不在“检查库存”功能,而是位于请求头中的 Referer 字段。

将请求发送到 Repeater

第2步:注入 Collaborator 有效载荷

在 Repeater 标签页中,选中 Referer 头的值(域名部分),右键 → “Insert Collaborator payload”

此时 Referer 会被替换为一个类似 http://[random-id].oastify.com 的 Collaborator 域名。

完整请求示例:

GET /product?productId=1 HTTP/1.1Host: [target-lab-id].web-security-academy.netReferer: http://[random-id].oastify.com...

第3步:发送请求并轮询结果

点击 “Send” 发送请求。随后切换到 Collaborator 标签页,点击 “Poll now”

如果看到 DNS 和 HTTP 交互记录,说明后端服务器确实访问了你注入的 Collaborator 地址,漏洞确认存在。

⏱️ 由于服务器端命令是异步执行的,如果没有立即收到交互,等待 5-10 秒后再次点击 “Poll now”。

💡 核心原理

什么是盲 SSRF?

普通 SSRF 中,服务器对目标 URL 的请求结果会直接返回给攻击者(如页面内容、错误信息等)。而盲 SSRF 中,虽然服务器发出了请求,但响应不会返回到前端。攻击者无法通过响应内容判断漏洞是否存在,也无法直接读取内网数据。

什么是 OAST(带外应用安全测试)?

OAST 的核心思路是:让目标服务器主动联系我们可控的外部系统。具体到这个靶场:

  1. 我们在 Referer 中注入一个由我们控制的域名(Burp Collaborator)
  2. 后端服务器在处理请求时,会向这个域名发起 HTTP 请求(用于分析来源流量)
  3. 我们在 Collaborator 服务端监听并记录这次交互(包括 DNS 解析和 HTTP 请求)
  4. 收到交互记录 → 证明 SSRF 漏洞存在

Burp Collaborator 充当了一个带外交互监听器的角色,专门用于检测这类“不可见”的漏洞。

为什么选择 Referer 头?

后端分析软件通常会记录访问来源,实现方式就是通过 Referer 头向来源网站发起请求以获取信息。这种“服务器向客户端提供的 URL 发起请求”的行为,恰好构成了 SSRF 漏洞的触发点。

🔧 同类技巧拓展

| 技巧 | 说明 | 适用场景 | | — | — | — | | 替换不同请求头 | 不仅限于 RefererHostOriginX-Forwarded-ForX-Client-IP 等头也可能被后端用来发起请求 | 快速探测多个注入点 | | Collaborator Everywhere 扩展 | 自动在所有 HTTP 头和 URL 参数中注入 Collaborator 有效载荷 | 大规模自动化探测 | | DNS 交互优先检测 | 某些场景下后端可能只发起 DNS 查询而不发起 HTTP 请求,此时 Collaborator 的 DNS 交互记录同样有效 | 检测 DNS 解析型 SSRF | | 时间延迟检测 | 如果没有 Collaborator 可用,可通过注入内网地址并测量响应延迟来推断是否存在 SSRF | 无外网环境的替代方案 | | HTTP 交互细节分析 | 查看 Collaborator 收到的 HTTP 请求中的 User-Agent 和 X-Forwarded-For,判断后端使用的库和网络环境 | 指纹识别和进一步利用 |

✅ 排障自检清单

| 问题 | 原因 | 解决方案 | | — | — | — | | Poll now 后没有任何交互 | 注入位置错误 | 确认是在 Referer 头中插入 Collaborator 有效载荷,而非其他参数 | | 交互记录只有 DNS 没有 HTTP | 后端仅解析域名未发起 HTTP 请求 | DNS 交互已足够证明漏洞存在 ,实验判定通过,可直接提交完成 | | 请求被防火墙拦截 | 使用了自定义外部域名 | 必须使用 Burp Collaborator 的默认公共服务器.oastify.com 或 .burpcollaborator.net) | | Collaborator 面板无反应 | 服务器端请求异步执行 | 等待 5-10 秒后再次点击 “Poll now”,可多次轮询 | | 右键没有 “Insert Collaborator payload” | Burp 版本不支持或未联网 | 手动复制 Collaborator 标签页中生成的域名,粘贴到 Referer 中 | | 收到交互但实验未完成 | 请求可能被缓存 | 重新发送一次请求,或清除浏览器缓存后再次触发 |

📌 总结

本关的核心在于理解 盲 SSRF 的检测思路:既然看不到响应,就让服务器主动来找我们。通过在 Referer 头中注入 Burp Collaborator 域名,利用后端服务器的自动请求行为,完成带外交互验证。

这种 OAST(带外测试) 方法在处理无回显漏洞时极为关键,不仅适用于 SSRF,还广泛应用于 SQL 盲注、XXE 盲注、RCE 盲测等场景。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:卡布奇诺的派对 卡布奇诺的派对 卡布奇诺的派对《【基于带外检测的SSRF盲注 —— PortSwigger“Blind SSRF with out-of-band detection”完整通关指南】》

评论:0   参与:  0