XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。XXE漏洞全称XMLExternal Entity Injection,即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害。
DTD
文档类型定义(DTD)可定义合法的XML文档构建模块
它使用一系列合法的元素来定义文档的结构
DTD可被成行地声明于XML文档中,也可作为一个外部引用
(1)内部的 DOCTYPE声明
(2)外部文档声明
DTD实体
(1)内部实体声明
<!ENTITY 实体名称 "实体的值">(2)外部实体声明
<!ENTITY 实体名称 sYSTEM "URI">(3)参数实体声明
<!ENTITY %实体名称 "实体的值"> <!ENTITY %实体名称 sYSTEM "UR工">XXE漏洞修复与防御方案-php,java,python-过滤及禁用
方法一:禁用
方法二:过滤