XXE漏洞简介
(1)XXE漏洞全称XML External Entity Injection,即xmI外部实体注入漏洞, XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害,XML(也是一种语言)被设计用来传输和存储数据
(2)也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致漏洞
DTD(Document Type Definition 文档类型定义)
1.DTD实体是用于定义引用普通文本或特殊字符的快捷方式的变量,可以内部声明或外部引用
2.外部实体(即可能存在漏洞的地方)声明:<!ENTITY 实体名称 SYSTEM "URI">
3.通过URL的不同访问而造成不同影响
下图为XML文档的一个完整简单的组成
解析:
(1)在DTD中,定义name为实体名,后面url为实体文本
(2)在XML元素中,&name表示实体变量,实际值为DTD定义的实体文本,即URL
(3)服务器后台解析执行代码元素,实际上服务器就是访问url,并且可能会把执行结果返回给用户,即漏洞存在