Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2021-32675 — CVE-2021-32675 在 Redis 中的功能性 DoS 漏洞利用,利用超大的批量字符串头部来触发内存耗尽。包含使用说明和基于 Docker 的测试环境。 | Kitploit
工具/GitHubGitHub/rubbxalc/cve-2021-32675
漏洞分析漏洞利用渗透测试学习与教育红队
GitHubrubbxalc/cve-2021-32675

CVE-2021-32675

CVE-2021-32675 在 Redis 中的功能性 DoS 漏洞利用,利用超大的批量字符串头部来触发内存耗尽。包含使用说明和基于 Docker 的测试环境。

查看仓库
20小时22分前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-32675 – Redis 预分配拒绝服务(OOM)

本仓库包含针对 CVE-2021-32675 的功能性利用代码,该漏洞是 Redis 中的拒绝服务(DoS)漏洞。该缺陷允许未经身份验证的远程攻击者通过发送超大体积的批量字符串头部而不提供参数数据,触发 Redis 服务器进行大规模内存预分配,从而导致内存耗尽和服务崩溃。

描述

CVE-2021-32675 是 Redis 查询缓冲区处理中的一个漏洞。在解析 RESP(REdis 序列化协议)协议中的传入命令时,Redis 会读取批量字符串参数声明的长度($<length>\r\n),并在读取任何参数字节之前立即在内存中预分配一个 SDS(简单动态字符串)缓冲区来接收负载。

由于此预分配发生在接收参数负载之前,未经身份验证的客户端可以声明最大允许的批量字符串大小(默认情况下,proto-max-bulk-len 为 512 MB),并无限期保持连接打开而不传输实际数据。Redis 为每个活动连接保留预分配的内存,形成约 32,000,000× 的放大比(约 16 字节的网络流量即可导致 512 MB 的内存预留)。

使用这种仅头部技术打开多个并发连接会迅速耗尽服务器可用内存,导致:

  • 如果启用了 maxmemory 策略,则强制驱逐键。
  • 通过拒绝后续写入操作(OOM command not allowed)造成拒绝服务。
  • 操作系统 OOM(内存不足)杀手终止进程。

该漏洞影响以下版本之前的 Redis:

  • 6.2.6
  • 6.0.16
  • 7.0(当未经身份验证或以默认批量限制运行时)

未配置身份验证(requirepass)或以默认 proto-max-bulk-len(512 MB)运行的 Redis 实例容易受到此利用的影响。已修补版本在预分配发生之前,对未经身份验证的客户端强制执行严格的 16 KB 协议缓冲区限制。

安装说明

  1. 创建虚拟环境(可选但推荐):
root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
  1. 安装依赖:
root@kitploit:~
pip install -r requirements.txt

要求

  • Python 3.8+

    • colorama 库
    • redis 库
  • 存在漏洞的 Redis 实例(6.2.6 / 6.0.16 之前的版本或未经身份验证的实例)

使用方法

root@kitploit:~
python3 exploit.py --host <IP> --port <PORT> [options]

选项

示例

root@kitploit:~
python3 exploit.py --host 127.0.0.1 --port 6379 --connections 10 --size 512 --hold 5

本地测试环境(可选)

您可以使用附带的 Docker Compose 配置启动本地测试环境:

root@kitploit:~
# 启动存在漏洞的 Redis(端口 6380)和已修补的 Redis(端口 6381)
docker compose -f conf/docker-compose.yml up -d

# 针对存在漏洞的实例进行测试
python3 exploit.py --host 127.0.0.1 --port 6380 --connections 10 --size 512

# 针对已修补的实例进行测试
python3 exploit.py --host 127.0.0.1 --port 6381 --password "L4bS3cur3!2024" --connections 10 --size 512

# 停止容器
docker compose -f conf/docker-compose.yml down

免责声明

此概念验证仅用于教育、研究和安全验证目的。作者不对任何滥用、损害或未经明确许可对系统进行的未经授权测试负责。

下载工具
选项类型默认值描述
--hoststr必填目标 Redis 主机名或 IP 地址
--portint6379端口号
--connectionsint10要打开的恶意连接数
--sizeint512声明的批量字符串缓冲区大小(MB)
--holdint5清理前保持连接打开的秒数
--password, --authstrNoneRedis 身份验证密码(如需要)