部分图片来自于网络,如有侵权,请联系我及时删除~

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

一、XXE的概念

1.1 什么是xml

xml是一种可拓展的标记语言,可以用来存储数据,例如:我们经常看到一些.xml的文件;它还可以用来传输数据,我们可以直接将数据以xml的格式放在请求当中,发给服务器。

1.2 xml文档格式

pikachu-XXE(xml external entity-injection) Safe 第1张

pikachu-XXE(xml external entity-injection) Safe 第2张

pikachu-XXE(xml external entity-injection) Safe 第3张

1.3 simplexml_load_string()

函数功能:转换形式正确的XML字符串为SimpleXMLElement对象

注意:在PHP里边解析xml用的是libxml,它在≥2.9.0的版本中,默认是禁止解析xml外部实体内容的。而XXE漏洞就发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致攻击者可以构造一个恶意的XML。

二、漏洞演示

1、我们来到pikachu实验平台。

pikachu-XXE(xml external entity-injection) Safe 第4张

2、看一下源代码。

pikachu-XXE(xml external entity-injection) Safe 第5张

3、用一个例子进行实验。

pikachu-XXE(xml external entity-injection) Safe 第6张

pikachu-XXE(xml external entity-injection) Safe 第7张

4、下面我们来用恶意的xml进行漏洞的演示。

pikachu-XXE(xml external entity-injection) Safe 第8张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄