实战篇——XXE漏洞pikachu靶场实战
实战篇——XXE漏洞pikachu靶场实战
XXE的原理
如果服务器未显式地禁用XML外部实体引用,攻击者就可以通过构造恶意的XML文档,实现文件读取、命令执行等攻击。
XXE有回显利用
构造XML文档实现文件读取:
对参数进行url编码后执行:
XXE无回显利用
无回显时需要使用外带通道,将文件读取的数据发送至第三方服务器。
receiver.php用于接收数据并进行base64解码,然后将数据保存至以当前时间戳命名的php文件中:
sender.dtd作为外部实体引入,用于向receiver.php发送数据:
payload:
对参数进行url编码后执行:
此时第三方服务器上新生成了一个php文件:
访问该文件,即可读取test.php文件内容:
XXE的防御
1.禁用外部实体(php:libxml_disable_entity_loader(true)😉
2.对用户提交的XML文档数据进行检验和过滤