
XXE
预备知识
XXE (XML External Entity Injection) 全称XML外部实体注入
原理: 在解析输入的xml数据时未对XML外部实体进行限制,攻击者将恶意代码注入xml中,于是解析了攻击者伪造的外部实体引发文件读取,SSRF,命令执行等
特征: 在HTTP的REQUEST报文中出现Content-Type: text/xml application/xml
XML
实体引用
结构
XML文档声明 文档第一行
XML文档类型定义(DTD) –> XXE漏洞点
XML文档元素
DTD
可以被声明在XML文档中或作为外部实体引用
格式
1 | 1.内部DTD文档 |
外部实体
XML对数据的引用为实体,引入外部资源则为外部实体
SYSTEM和PUBLIC两个关键字表示实体来自本地计算机还是公共计算机
一般利用一下协议:
1 | file:///path/to/file.txt |
常用exp:
1 |
|
利用%26代替& 因为&会被当作实体引用的开始标志
实体变量解析:
1 | ] |
在这里声明了xxe变量,且SYSTEM是把后面url中读取的内容赋值给xxe,后面就可以通过&xxe来引用
例题
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自Assass1nの小窝
评论