Blind SSRF
在本节中,我们将解释什么是不可见的服务端请求伪造,并描述一些常见的不可见 SSRF
示例,以及解释如何发现和利用不可见 SSRF
漏洞。
什么是不可见 SSRF
不可见 SSRF
漏洞是指,可以诱导应用程序向提供的 URL 发出后端 HTTP 请求,但来自后端请求的响应没有在应用程序的前端响应中返回。
不可见 SSRF 漏洞的影响
不可见 SSRF
漏洞的影响往往低于完全可见的 SSRF
漏洞,因为其单向性,虽然在某些情况下,可以利用它们从后端系统检索敏感数据,但不能轻易地利用它们来实现完整的远程代码执行。
如何发现和利用不可见 SSRF 漏洞
检测不可见 SSRF
漏洞最可靠的方法是使用 out-of-band
(OAST
)带外技术。这包括尝试触发对你控制的外部系统的 HTTP 请求,并监视与该系统的网络交互。
使用 OAST
技术最简单有效的方式是使用 Burp Collaborator
(付费软件)。你可以使用 Burp Collaborator client
生成唯一的域名,将这个域名以有效负载的形式发送到检测漏洞的应用程序,并监视与这个域名的任何交互,如果观察到来自应用程序传入的 HTTP 请求,则说明应用程序存在 SSRF
漏洞。
注意:在测试 SSRF 漏洞时,通常会观察到所提供域名的 DNS 查找,但是却没有后续的 HTTP 请求。这通常是应用程序视图向该域名发出 HTTP 请求,这导致了初始的 DNS 查找,但实际的 HTTP 请求被网络拦截了。基础设施允许出站的 DNS 流量是相对常见的,因为出于很多目的需要,但是会阻止到意外目的地的 HTTP 连接。
简单地识别一个可以触发 out-of-band
带外 HTTP 请求的不可见 SSRF
漏洞本身并没有提供一个可利用的途径。由于你无法查看来自后端请求的响应,因此也无法得知具体的内容。但是,它仍然可以用来探测服务器本身或其他后端系统上的其他漏洞。你可以盲目地扫描内部 IP 地址空间,发送旨在检测已知漏洞的有效负载,如果这些有效负载也使用带外技术,那么您可能会发现内部服务器上的一个未修补的严重漏洞。
另一种利用不可见 SSRF
漏洞的方法是诱导应用程序连接到攻击者控制下的系统,并将恶意响应返回到进行连接的 HTTP 客户端。如果你可以利用服务端 HTTP 实现中的严重的客户端漏洞,那么你也许能够在应用程序基础架构中进行远程代码执行。