代码安全 | 第二十三期:对XML外部实体引用的不当限制 本期主题为对XML外部实体引用的不当限制的相关介绍。 01 什么是对XML外部实体引用的不当限制? 该软件处理的XML文档可能包含带有URI的XML实体,这些URI可以解析为超出预期控制范围的文档,从而导致产品将不正确的文档嵌入其输出中。 XML文档可以选择包含文档类型定义(DTD),该文档类型定义(DTD)除其他功能外,还可以定义XML实体。可以通过提供URI形式的替换字符串来定义实体。XML解析器可以访问此URI的内容,并将这些内容重新嵌入XML文档中以进行进一步处理。 02 对XML外部实体引用的不当限制构成条件有哪些? 满足以下条件,就构成了一个该类型的安全漏洞: 通过提交使用file:// URI定义外部实体的XML文件,攻击者可以使处理应用程序读取本地文件的内容。例如,诸如“ file:/// c:/winnt/win.ini”之类的URI(在Windows中)指定文件C: Winnt win.ini,或file:/// etc / passwd指定密码基于Unix的系统中的文件。 通过将URI与其他方案(例如http://)一起使用,攻击者可以强制应用程序向攻击者无法直接到达的服务器发出传出请求,这些请求可用于绕过防火墙限制或隐藏攻击源(例如端口扫描)。 读取URI的内容后,会将其反馈回正在处理XML的应用程序中。该应用程序可以回显数据(例如在错误消息中),从而暴露文件内容。 03 对XML外部实体引用的不当限制漏洞会造成哪些后果? 如果攻击者能够包括精心制作的DTD,并且启用了默认实体解析器,则攻击者可能能够访问系统上的任意文件。 DTD可以包括服务器可以执行的任意HTTP请求。这可能导致利用服务器与其他实体的信任关系的其他攻击。 使用指向大文件的URI或始终返回数据的设备(例如/ dev / random),该软件可能会消耗过多的CPU周期或内存。或者,URI可以引用包含许多嵌套或递归实体引用的文件,以进一步减慢解析速度。 04 对XML外部实体引用不当限制的防范和修补方法有哪些? 可以将许多XML解析器和验证器配置为禁用外部实体扩展。 05 对XML外部实体引用的不当限制漏洞样例:
用静态代码检测分析上述程序代码,则可以发现代码中存在着“对XML外部实体引用的不当限制” 导致的代码缺陷,如下图:
对XML外部实体引用的不当限制在CWE中被编号为CWE-611: Improper Restriction of XML External Entity Reference
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/85330.html