当前位置:   article > 正文

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

xxe payload

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

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数据

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/590027
推荐阅读
相关标签
  

闽ICP备14008679号