这是一个创建于 1397 天前的主题,其中的信息可能已经有所发展或是发生改变。
3.1.1. XML 外部实体注入(1)
缺陷描述:使用配置的 XML 解析器无法预防和限制外部实体进行解析,这会
使解析器暴露在 XML External Entities 攻击之下
缺陷的原理、风险及预防:XML External Entities 攻击可利用能够在处理时
动态构建文档的 XML 功能。XML 实体可动态包含来自给定资源的数据。外
部实体允许 XML 文档包含来自外部 URI 的数据。除非另行配置,否则外部
实体会迫使 XML 解析器访问由 URI 指定的资源,例如位于本地计算机或远
程系统上的某个文件。这一行为会将应用程序暴露给 XML External Entity
(XXE) 攻击,从而用于拒绝本地系统的服务,获取对本地计算机上文件未经
授权的访问权限,扫描远程计算机,并拒绝远程系统的服务。
缺陷示例:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///dev/random" >]><foo>&xxe;
</foo>
如果 XML 解析器尝试使用 /dev/random 文件中的内容来替代实体,则此示
例会使服务器(使用 UNIX 系统)崩溃。
1 条回复 • 2021-01-29 12:36:28 +08:00