盲SSRF
原理
当可以诱导应用程序向提供的 URL 发出后端 HTTP 请求,但后端请求的响应未在应用程序的前端响应中返回时,就会出现盲 SSRF 漏洞。
影响
盲 SSRF 漏洞的影响通常低于完全知情的 SSRF 漏洞,因为它们具有单向性。不能轻易利用它们从后端系统检索敏感数据,尽管在某些情况下可以利用它们来实现完整的远程代码执行。
挖掘及利用
检测盲 SSRF 漏洞最可靠的方法是使用带外 ( OAST ) 技术。这涉及尝试向您控制的外部系统触发 HTTP 请求,并监视与该系统的网络交互。
使用带外技术最简单、最有效的方法是使用Burp Collaborator。您可以使用Burp Collaborator 客户端生成唯一的域名,将它们以有效负载的形式发送到应用程序,并监视与这些域的任何交互。如果观察到来自应用程序的传入 HTTP 请求,那么它很容易受到 SSRF 的攻击。
在测试 SSRF 漏洞时,通常会观察到对提供的 Collaborator 域的 DNS 查找,但没有后续的 HTTP 请求。这通常是因为应用程序试图向域发出 HTTP 请求,这导致了初始 DNS 查找,但实际的 HTTP 请求被网络级过滤阻止。基础设施允许出站 DNS 流量是相对常见的,因为有很多目的都需要这样做,但会阻止与意外目的地的 HTTP 连接。
简单地识别可以触发带外 HTTP 请求的盲SSRF 漏洞本身并不能提供可利用的途径。由于您无法查看来自后端请求的响应,因此无法使用该行为来探索应用程序服务器可以访问的系统上的内容。但是,仍然可以利用它来探测服务器本身或其他后端系统上的其他漏洞。您可以盲目地扫描内部 IP 地址空间,发送旨在检测已知漏洞的有效负载。如果这些有效载荷还采用了盲带外技术,那么您可能会在未打补丁的内部服务器上发现一个严重漏洞。
另一种利用盲SSRF漏洞的途径是诱使应用程序连接到攻击者控制的系统,并向建立连接的HTTP客户端返回恶意响应。如果您可以利用服务器 HTTP 实现中的严重客户端漏洞,您可能能够在应用程序基础架构中实现远程代码执行。