XXE漏洞
- XML:
- XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
- XXE( XML External Entity 外部实体注入,只能读服务器文件,但是执行不了系统命令):
- XXE(XML外部实体注入,XML External Entity) ,在应用程序解析XML输入时,当允许引用外部实体时,可构造恶意内容,导致读取任意文件、探测内网端口、攻击内网网站、发起DoS拒绝服务攻击、执行系统命令等。当运维人员使用了低版本php(php<7.0),libxml低于2.9.1或者程序员设置了libxml_disable_entity_loader(FALSE)就可以加载外部实体。;
- 测试语句(读取C盘下面的某个文件):
- <?xml version = "1.0"?> <!DOCTYPE ANY [ <!ENTITY f SYSTEM "file:///C://1.txt"> ]> <x>&f;</x>
- 详解:
- 白盒:
- 查看代码里面是否使用了LoadXML( )函数
- 黑盒(https://www.cnblogs.com/mysticbinary/p/12668547.html):
- 抓包看响应体是否存在xml,accept头是否接受xml(附录:CTF xxe实战地址:http://web.jarvisoj.com:9882/ )
- 抓包看响应体是否存在xml,accept头是否接受xml(附录:CTF xxe实战地址:http://web.jarvisoj.com:9882/ )