XXE——参数实体攻击(CVE-2017-14949)

XML参数实体

参数实体必须定义在单独的DTD文档中或XML文档的DTD区(但是引用只能在DTD文档中,即外部子集,而不能在XML文档的DTD区),前者为该XML文档的外部子集,后者为该XML文档的内部子集

参数实体的作用是作为DTD中的元素的条件控制。参数实体定义以%作为开头,引用也以%开头,以;结尾。一般实体的定义无%开头,引用以&开头,以;结尾

XXE——参数实体攻击(CVE-2017-14949)_第1张图片
DTD区

由于参数实体只能在DTD引用,因此参数实体看上去无害。利用参数实体进行攻击的payload。

XXE——参数实体攻击(CVE-2017-14949)_第2张图片

malicious.dtd文件里的内容如下:

XXE——参数实体攻击(CVE-2017-14949)_第3张图片

由于外部参数实体是允许的,实体远程将在数据解析时扩展,然后从攻击者设置的恶意网站获取DTD的另一部分,如上例中的internal。

在解析XML数据时,任何引用internal的地方都将被文件/ etc / passwd的内容替换。

XXE——参数实体攻击(CVE-2017-14949)_第4张图片
XXE——参数实体攻击(CVE-2017-14949)_第5张图片

你可能感兴趣的:(XXE——参数实体攻击(CVE-2017-14949))