只需要一个精心构造的XML文件,就能让服务器内存耗尽、CPU飙满,甚至整个服务崩溃——这就是XXE(XML外部实体)拒绝服务攻击中的“嵌套实体”攻击,俗称“Billion Laughs”或“指数实体扩展”。今天我们就来拆解这种攻击的原理,并介绍百度云防护如何用一条规则(规则ID 4206)轻松防住它。
一、 什么是XXE?为什么嵌套实体攻击如此致命?
XXE(XML External Entity)攻击是指攻击者利用XML解析器对外部实体的处理特性,进行恶意操作,包括:
- 文件读取:读取服务器上的敏感文件
- SSRF:发起内网探测
- 拒绝服务(DoS):通过递归实体耗尽内存/CPU
而嵌套实体拒绝服务攻击,正是利用XML实体嵌套展开时的指数级扩展,让解析器陷入无限循环或内存爆炸。
1.1 “Billion Laughs”攻击原理
一个典型的“Billion Laughs”攻击载荷如下:
<?xml version="1.0"?>
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
...
]>
<lolz>&lol9;</lolz>
每一层实体都将上一层的实体数量扩大10倍。当解析器展开&lol9;时,实际会生成10^9个“lol”字符串,即10亿个字符。如果解析器一次性将实体全部展开到内存中,服务器内存瞬间耗尽,导致服务崩溃。
1.2 攻击危害
- 服务器宕机:内存耗尽,进程崩溃
- 业务中断:依赖XML解析的服务全部不可用
- 连锁反应:如果XML解析器是共享进程(如Java的某些解析器),可能影响同一服务器上的其他应用
这类攻击门槛极低,只需发送一个XML请求即可实现,是黑客常用的低成本“炸弹”。
二、 为什么传统防护难以拦截嵌套实体攻击?
- 特征不明显:攻击载荷只是正常的XML实体定义,没有SQL注入、XSS等明显的关键词。
- 深度嵌套:攻击者可以控制嵌套层数,传统WAF如果只检测第一层,很容易漏过。
- 多种变形:除了“lol”实体,还可以用其他实体名、不同嵌套深度、混合外部实体等方式绕过。
要有效拦截这类攻击,WAF必须具备XML语法解析能力,能够递归识别实体嵌套的深度和扩展规模,并在到达危险阈值前阻断请求。
三、 百度云防护如何拦截XXE嵌套实体攻击?
从百度云防护的内置规则库可以看到,专门有一条规则用于检测此类攻击:
| 规则名称 | 规则ID | 风险等级 | 防护类型 | 规则描述 |
|---|---|---|---|---|
| Injection.xxe_nested_entity.A | 4206 | 中风险 | 注入 | 检测XXE拒绝服务攻击的嵌套实体结构 |
这条规则的工作原理如下:
3.1 深度解析XML结构
当请求体为XML格式时,百度云防护WAF会完整解析XML文档结构,提取其中的实体定义和嵌套关系。无论嵌套多少层,引擎都能准确识别出实体之间的引用链条。
3.2 检测嵌套深度与扩展规模
规则会统计实体嵌套的深度和潜在展开规模。一旦发现嵌套深度超过预设阈值(比如10层),或者展开后的大小可能超出合理范围,立即判定为攻击。
3.3 智能阻断,不影响正常业务
对于正常XML请求(如RPC调用、配置文件上传),嵌套深度通常很浅(1-2层)。规则经过海量样本训练,能精准区分恶意嵌套和正常业务,误报率极低。
3.4 配合其他防护形成纵深
除了规则4206,百度云防护还内置了其他XXE防护规则(如规则4200检测XXE外带数据,规则4206检测嵌套实体),形成对XXE攻击的立体防御。
四、 如何启用这条规则?
如果你已经接入百度云防护,只需两步:
- 登录百度云防护控制台 → 防护配置 → Web防护 → 内置规则
- 搜索规则ID 4206,确认状态为“开启”,动作为“拦截”(或先设为“观察”测试)
如果误报率较高(极少情况),可以添加白名单放行特定业务接口,但建议保持开启。
五、 主机吧小结:别让XML成为你的“内存炸弹”
XXE嵌套实体攻击是一种经典但依然有效的攻击手段,很多开发者在处理XML时忽略了实体嵌套的安全问题。而百度云防护的规则4206,正是为这类“隐藏炸弹”量身定制的防线。
对于站长和企业,除了依赖WAF,还应遵循安全开发规范:
- 禁用XML外部实体解析(在XML解析器中关闭DTD和外部实体)
- 对用户提交的XML进行严格校验
- 部署专业WAF作为兜底防护
如果你还不确定自己的系统是否存在XXE风险,或者想为网站加上一道可靠的防线,欢迎联系主机吧。我们提供免费安全评估和配置指导,帮你把“嵌套炸弹”挡在门外。
主机吧 | 百度云防护官方合作伙伴
提供WAF接入、高防CDN、高防IP、高防服务器、SSL证书一站式服务
让每一次解析都安全,让每一份数据都完整。


