BurpWeb安全学院之XXE


实验室链接 https://portswigger.net/web-security

XXE漏洞如何产生

一些应用程序使用XML格式在浏览器和服务器之间传输数据.而服务器端又没有对XML数据进行很好的检查,就可能产生XXE漏洞.

如: 某个网页可能传输如下的数据

如果稍加修改:

利用XXE读取文件

要执行从服务器的文件系统中读取任意文件的XXE注入攻击,需要修改两处XML:

  • 引入(或编辑)一个DOCTYPE元素,该元素定义一个包含文件路径的外部实体。
  • 编辑应用程序响应中返回的XML中的数据值,以使用已定义的外部实体

例如,假设购物应用程序通过向服务器提交以下XML来检查产品的库存:

<?xml version="1.0" encoding="UTF-8"?>
<stockCheck><productId>381</productId></stockCheck>

正常情况下会返回:

如果稍加修改:

先引入一个xxe的外部实体,再修改相应值

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<stockCheck><productId>&xxe;</productId></stockCheck>

就可以读取文件

利用XXE执行SSRF攻击

除了检索敏感数据外,XXE攻击的另一个主要影响是,它们可用于执行服务器端请求伪造(SSRF) ,

这可能导致服务器端应用程序对服务器可以访问的任何URL发出HTTP请求

通过查看请求相应判断请求资源是否存在等.

操作方法也是先引入一个实体,再替换响应值:

如下:

引入实体探测内网: 探测http://169.254.169.254/时

说明我们请求的资源存在,返回了一个目录的名称latest

持续的请求最终可以读取到文件

XXE盲注检测

前面两种都是有回显情况下的XXE注入,但实际上XXE漏洞的许多情况都是没有回显的.

这意味着应用程序不会在其响应中返回任何已定义外部实体的值,因此无法直接检索服务器端文件

但是可以通过别的方法来间接检测

检测方法:

  • 报错注入
  • 与外网交互

通过Burpsuite的Collaborator可以测试XXE盲注

Burp Collaborator测试XXE盲注

具体使用可以参考 https://blog.csdn.net/fageweiketang/article/details/89073662

在BurpSuite专业版中.

开启Collaborator Server

通过工具栏可以打开

点击Copy to clipboard可以生成连接

类似xxx.burpcollaborator.net

当我们发现 存在疑似XXE漏洞,测试的时候只能看见"Invalid product ID"

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值