![网络空间安全实验教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/986/41864986/b_41864986.jpg)
上QQ阅读APP看书,第一时间看更新
2.1.4 XXE攻击定义及产生原理
XML外部实体(XML External Entity,XXE)攻击是由于程序在解析输入的XML数据时,解析了攻击者伪造的外部实体而产生的。很多XML的解析器默认是含有XXE漏洞的,这意味着开发人员有责任确保这些程序不受此漏洞的影响。
XXE攻击产生原理:
XML元素以形如<tag>foo</tag>的标签开始和结束,如果元素内部出现如<的特殊字符,解析就会失败,为了避免这种情况,XML用实体引用替换特殊字符。XML预定义了五个实体引用,即用<>&'"替换< >&'"。
实际上,实体引用可以起到类似宏定义和文件包含的效果,为了方便,我们会希望自定义实体引用,这个操作在称为文档类型定义(DTD)的过程中进行。DTD是XML文档中的几条语句,用来说明哪些元素/属性是合法的,以及元素间应当怎样嵌套/结合,也用来将一些特殊字符和可复用代码段自定义为实体。DTD成为XXE攻击的突破口。
DTD有两种形式:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_32_01.jpg?sign=1738955760-WRqskJDfKaePno1oQ3PMfH6KVfibq6J9-0-f21f49207f305e67bbb751b3426b9606)
可以在元素声明中自定义实体,与DTD类似也分为内部实体和外部实体,此外还有普通实体和参数实体之分:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_33_01.jpg?sign=1738955760-nawilJaZqIiXtktYZIXdJT287CAyiViu-0-f3e58f51bc984474390dd04e9e39c2fe)
直接通过DTD外部实体声明。XML外部实体攻击样例1如下:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_33_02.jpg?sign=1738955760-sA9a8PBDpNzMMg1Pw3PzqEtz4xDmoetD-0-bcef6e64dd5e7a9525f160ca3f74e12f)
通过DTD外部实体声明引入外部实体声明。XML外部实体攻击读取任意文件。样例2如下:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_33_03.jpg?sign=1738955760-jqk3ECnqiI2bOT57dSTOtWZsC7h2WorP-0-6f56d8ecf65832cf2398725c481d800b)
继续扩展:构造本地XML接口,先包含本地XML文件,查看返回结果,正常返回后再换为服务器接口。
1.任意文件读取
payload(攻击载荷)如下:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_33_04.jpg?sign=1738955760-logN5BXYMOJU0qAeXmLjMQDolO4i4EZj-0-7d4f0cdd3335e00cae52b04392ddd823)
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_34_01.jpg?sign=1738955760-ERiTUwvi4QSKS3eAOaROuXD8ew90kj7m-0-f41964543a9a48d28976e8db138d069a)
2.探测内网地址
payload如下:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_34_02.jpg?sign=1738955760-5YZ3LA4RvaooxoJp3cqwfnFubfSUalU4-0-d94f17fccdbd5286857d1d44977141d6)