![网络空间安全实验教程](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=1739478649-tV2fjoW4sjYgystby2MV1JscDh3BjRHZ-0-e8e76d7df1e024db1ee1cd7498f557b4)
可以在元素声明中自定义实体,与DTD类似也分为内部实体和外部实体,此外还有普通实体和参数实体之分:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_33_01.jpg?sign=1739478649-qgMZN4oU2pAk1dVuUmL22gaDhNzchCF2-0-be52a987fa503ed58fef256d0c6ab58f)
直接通过DTD外部实体声明。XML外部实体攻击样例1如下:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_33_02.jpg?sign=1739478649-fReD8UMQeTUCHWGBR6PSRNLwRV7uAWN0-0-4f01753d1f1c91621a89252913cc87b0)
通过DTD外部实体声明引入外部实体声明。XML外部实体攻击读取任意文件。样例2如下:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_33_03.jpg?sign=1739478649-7T0kooLwnZ2X7D96iekvjI5LorILXV52-0-b27aa89b5c783df3fd1f5e8214b8e5c7)
继续扩展:构造本地XML接口,先包含本地XML文件,查看返回结果,正常返回后再换为服务器接口。
1.任意文件读取
payload(攻击载荷)如下:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_33_04.jpg?sign=1739478649-5uJwIgbVUh2qdFfIPDMZBGELWyVHkxPP-0-415b2319af51bfc4c587b768688893c0)
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_34_01.jpg?sign=1739478649-zoSIKYOuZ7BwaAU1p8ZISGHX1K8HiHSP-0-73cb5a366a3ce3eff4a4c719dbbae2ce)
2.探测内网地址
payload如下:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_34_02.jpg?sign=1739478649-9OVdRV4mh3Hc7pFrUL46W2EP5nTpL7aX-0-d8abf45b908c2f41bca9f3b3d1eda791)