论坛首页 开源情报交流区 阅读主题

[原创]简单实现 DDoZ 客户端内存耗尽攻击

398 浏览 0 回复
#1 楼主 2026-06-01 21:09:08
项目概述
DDoZ(Decompression Death of Zstandard) 是一个基于 zstd 压缩算法的客户端内存耗尽攻击演示项目。DDoZ 攻击通过发送特殊构造的 zstd 压缩响应,导致客户端在解压缩过程中消耗大量内存,从而引发内存溢出和崩溃。
部署方式
在 kazutoiris/DDoZ 中支持 Cloudflare Workers 一键部署。同时提供了一个示例链接,用于测试 1TiB 解压大小对于客户端的影响。
核心原理
Zstd 压缩算法
Zstd(Zstandard) 是 Facebook 开发的一种快速无损压缩算法,具有高压缩比和快速解压缩的特点。根据 RFC8878 规定,一个 zstd 帧由多个块组织而成,块的类型有三种:原始块、RLE 块和压缩块。每个块的解压后大小被限制为了 128KiB。
攻击原理
DDoZ 主要利用 RLE 块进行攻击。RLE 块的工作原理是重复单个字节值 Block_Size 次。一个 RLE 块由以下部分组成:

头部(3 字节):包含块的元数据

单字节内容:需要重复的字节


因此,一个 4 字节的结构(3 字节头 + 1 字节内容)可以产生最多 128KiB 的解压缩数据。通过链接多个 RLE 块,可以实现巨大的放大比(32 MiB 响应可以解压出 1TiB 内容)。
工作流程

客户端向服务器发送 HTTP 请求

服务器根据环境变量 DECOMPRESSED_SIZE_IN_GIB 确定生成的数据大小,并构造特殊的 zstd 压缩数据。

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-288762.htm

暂无回复,快来抢沙发吧!

请登录后参与讨论

立即登录 注册账号