pikachu-XXE(xml external entity-injection)

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

一、XXE的概念

1.1 什么是xml

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

1.2 xml文档格式

pikachu-XXE(xml external entity-injection)_第1张图片

pikachu-XXE(xml external entity-injection)_第2张图片

pikachu-XXE(xml external entity-injection)_第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)_第4张图片

2、看一下源代码。

pikachu-XXE(xml external entity-injection)_第5张图片

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

pikachu-XXE(xml external entity-injection)_第6张图片

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

你可能感兴趣的:(pikachu-XXE(xml external entity-injection))