- 漏洞描述
目标存在webservice XML实体注入漏洞。XML是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。当允许引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。 - 解决方案
(1) 关闭XML解解析函数的外部实体。
在生成xml的代码中加入:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
如果使用的是DOM4J的Document生成的xml请改成w3c的Document生成。代码如下:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setExpandEntityReferences(false