XXE原理
攻击者通过干扰应用程序对XML数据的处理,从而实现读取应用程序服务器文件系统中的文件,并与应用程序本身可以访问到的任何后端或外部系统进行交互的一种Web安全漏洞。
在应用程序解析xml输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成
a:文件读取
b:命令执行
c:内网端口扫描
d:攻击内网网站
e:发起DDos攻击等
在某些情况下,攻击者可以通过利用XXE漏洞执行服务器端请求伪造攻击来升级XXE攻击以危及底层服务器或者其他后端基础架构。
XML介绍
XML
(extensible markup language)是用于标记电子文件使其具有结构性的可拓展标记语言,用于存储和传输数据。与HTML一样,XML使用标签和树形结构。与HTML不同,XML不使用预定义标记,因此可以标记指定描述数据的名称。
XML文档结构包括XML声明、DTD
文档类型定义(可选)、文档元素。下面是XML语法结构。
<?xml version="1.0" ?> <!-- xml声明 -->
<!DOCTYPE note [ <!-- DTD文档类型定义 根元素note -->
<!ELEMENT note (to, from, heading, body)> <!--note中的子元素-->
<!ELEMENT to (#PCDATA)> <!-- 接收者 -->
<!ELEMENT from (#PCDAT