XML 实体扩展注入(也称为 "Billion Laughs" 攻击或 "XML Bomb")是一种通过恶意构造的 XML 实体实现 拒绝服务攻击(DoS) 的手段。攻击者利用 XML 解析器处理实体时的递归扩展机制,通过极小的 XML 数据触发指数级内存消耗,导致系统资源耗尽。
攻击原理
xml
<!DOCTYPE foo [ <!ENTITY a "xxxxxxxxxx"> <!-- 10个字符 --> <!ENTITY b "&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;"> <!-- 10×10 = 100字符 --> <!ENTITY c "&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;"> <!-- 100×10 = 1000字符 --> ]> <foo>&c;</foo>
-
递归扩展:实体
&c;展开为 10 个&b;,每个&b;展开为 10 个&a;,最终生成10×10×10 = 1000个字符(实际攻击中层级更深,可达 GB/TB 级数据)。 -
内存爆炸:解析器在内存中展开实体,消耗大量资源。

最低0.47元/天 解锁文章
536

被折叠的 条评论
为什么被折叠?



