xxe漏洞(xml外部实体注入漏洞)

文章详细介绍了XXE漏洞的产生原理,包括正常回显、报错和盲注三种利用方式,并通过靶场案例展示了如何检测和利用此类漏洞。此外,文中还阐述了XXE漏洞的危害,如DOS攻击、SSRF和文件读取等,并提出了禁用外部实体和验证XML数据等防护措施。
摘要由CSDN通过智能技术生成

想要挖掘一个漏洞我们首先就要知道这个漏洞是如何产生的。

1.漏洞产生原理

XXE漏洞就是”攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题”

也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入

2.漏洞利用

将payload注入XML文件中,一旦文件被执行,将会读取服务器上的本地文件,并对内网发起访问扫描内部网络端口。

有回显和无回显:有回显的情况可以直接在页面中看到Payload的执行结果或现象,无回显的情况又称为blind xxe可以使用外带数据通道提取数据

3.靶场案例讲解——使用pikachu-xxe讲解

在这里给大家推荐: http://114.116.45.110/里面有各种靶场,不想自己搭建的小伙伴可以使用一下

正常回显XXE

正常回显XXE是最传统的XXE攻击,在利用过程中服务器会直接回显信息,可直接完成XXE攻击。

报错XXE

报错XXE是回显XXE攻击的一种特例,它与正常回显XXE的不同在于它在利用过程中服务器回显的是错误信息,可根据错误信息的不同判断是否注入成功。

盲注XXE

当服务器没有回显,就需要选择使用盲注了。可组合利用file协议来读取文件或http协议和ftp协议来查看日志。

1.查看受攻击机的服务器日志
2.通过Dnslog平台查看是否进行查询
3.Burp Collaborator Everywhere 插件验证

进入靶场可以看到一个接收xml数据的api,那么我们在实施攻击之前判断一下有无回显:

<?xml version="1.0"?>
<!DOCTYPE ANY [   
<!ENTITY xxe "小黑子" > ]>
<a>&xxe;</a>

输入上述payload之后回显了”小黑子”说明存在回显。注意:只能判断是否存在回显,不能判断是否支持外部实体。

在知道存在回显后,可以尝试读取一些敏感目录,比如读取c:/windows/win.ini,它是每个windows系统都有的,linux系统的的话可以读取/etc/passwd,当然想要读取其他文件目录,只需更改绝对路径即可(file://协议只能用绝对路径)

payload:

<?xml version="1.0"?>
<!DOCTYPE ANY [
     <!ENTITY xxe SYSTEM "file:///c:/windows/win.ini"> ]>
<a>&xxe;</a>

成功读取文件内容。

4.危害

1.DOS攻击

2.SSRF攻击

3.使用file协议读取任意文件

4.端口探测

5.利用支持的协议执行系统命令

5.防护

1.禁用外部实体

2.过滤和验证用户提交的XML数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoheizi安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值