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

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

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

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

工具目录

分类

查看所有分类
Loading categories
redis-poc — 针对 Redis 6.2.22、7.4.9、8.6.4、8.8.0、8.8.1 的 RCE PoC | Kitploit
工具/GitHubGitHub/berabuddies/redis-poc
漏洞分析漏洞利用渗透测试红队数据库安全二进制利用
GitHubberabuddies/redis-poc

redis-poc

针对 Redis 6.2.22、7.4.9、8.6.4、8.8.0、8.8.1 的 RCE PoC

查看仓库
48711828天前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Redis 认证 RCE(stream NACK 双重释放、TDigest 与 TopK 模块漏洞)

针对 Redis 6.2.22、7.4.9、8.6.4 的非破坏性 RCE 利用,通过 stream 消费者组共享 NACK 双重释放(CVE-2026-25243 的补丁绕过);针对 8.8.0 通过捆绑 RedisBloom 中的 TDigest 堆溢出;针对 8.8.1 通过 TopK 野指针 释放(CVE-2026-25589 的补丁绕过)。

文件

  • A_exploit_stock.py — 针对 6.2.22 的利用(redis:6.2.22 镜像)
  • P74_exploit.py(+ P74_g2.py)— 针对 7.4.9 的利用(redis:7.4)
  • P86_exploit.py — 针对 8.6.4 的利用(redis:8.6)
  • P88W_exploit.py(+ P88W_lib.py、P88W_corrupt.py)— 针对 8.8.0 的利用(redis:8.8.0,通过捆绑模块 TDigest 堆溢出)
  • T88_exploit.py — 针对 8.8.0 和 8.8.1 的利用(通过捆绑模块 TopK 野指针释放;绕过不完整的 CVE-2026-25589 修复 — 适用于 RedisBloom v8.8.0 和 v8.8.2)
  • A_lib.py、G2_arbread.py — 共享辅助库(必须与利用脚本放在同一目录)
  • crc64.c/h、crcspeed.c/h — libcrc64.so 的源码(Redis CRC64, 用于构建有效的 RESTORE 载荷)
  • calibrate.sh — 为非官方构建计算二进制偏移量
  • P74_loop.sh、P86_run.sh — 启动重试包装脚本

构建(一次性)

root@kitploit:~
gcc -shared -fPIC -O2 -o libcrc64.so crc64.c crcspeed.c

依赖:Python 3.6+(无需 pip 包)、gcc。

使用方法

root@kitploit:~
# 6.2.22 (DEBUG enabled by default)
python3 A_exploit_stock.py <host> <port> [password] [trigger]

# 7.4.9 / 8.6.4 — stock target, NO debug flag needed
python3 P74_exploit.py <host> <port> [password] [trigger]
python3 P86_exploit.py <host> <port> [password] [trigger]

# 8.8.0 — stock target, FRESH container/instance strongly recommended
python3 P88W_exploit.py <host> <port> [password] [trigger]

# 8.8.0 / 8.8.1 — TopK wild free, stock target, fresh instance recommended
python3 T88_exploit.py <host> <port> [password] [trigger]
  • password — 无认证目标可省略(或传入 "")
  • trigger — shell 命令,默认在 /data/pwned* 下写入证明

示例:

root@kitploit:~
# local lab, 6.2.22
docker run -d -p 6379:6379 redis:6.2.22 redis-server --requirepass exploitme
python3 A_exploit_stock.py 127.0.0.1 6379 exploitme "id > /data/pwned_stock"

# local lab, 7.4.9
docker run -d -p 6379:6379 redis:7.4 redis-server --requirepass exploitme
python3 P74_exploit.py 127.0.0.1 6379 exploitme "id > /data/pwned74"

# local lab, 8.6.4
docker run -d -p 6379:6379 redis:8.6 redis-server --requirepass exploitme
python3 P86_exploit.py 127.0.0.1 6379 exploitme "id > /data/pwned86"

# local lab, 8.8.0
docker run -d -p 6379:6379 redis:8.8.0 redis-server --requirepass exploitme
python3 P88W_exploit.py 127.0.0.1 6379 exploitme "id > /data/pwned88"
python3 T88_exploit.py 127.0.0.1 6379 exploitme "id > /data/pwned_t88"

目标要求

  • 6.2.22:默认使用官方镜像偏移量。对于其他构建, 请覆盖偏移量(--str-format-off 等;参见 --help),或运行 ./calibrate.sh /path/to/redis-server [/path/to/libc.so.6] 生成。 错误的偏移量会导致目标服务器崩溃(越界读取)。
  • 7.4.9 / 8.6.4 / 8.8.0 / 8.8.1:官方标准镜像,无需 debug 标志。
  • 用户可用的命令:EVAL、RESTORE、XGROUP (8.8.0/8.8.1 还需要捆绑的 RedisBloom 模块,默认自带)。
  • 8.8.0/8.8.1 利用对内存布局敏感:TDigest 通道和 TopK 野指针释放都依赖 jemalloc 布局 — 请使用全新 实例,避免其他客户端/命令穿插,若布局梳理失败请重试。

备注

  • 运行后残留(刻意保留且惰性):少量利用键用于保持 双重释放的 chunk 存活;详见 HARDENING.md。 8.8.0 利用会留下约 2000 个归零的 tdigest 结构体 + 一个损坏的 oracle 键 — 之后不要对目标执行 FLUSHALL/SAVE。
  • 共享 NACK 双重释放仅在 8.8.0(PR #15081)中修复; 8.8.0 利用转而使用另一个未修复的捆绑模块漏洞。
  • 演示的补丁绕过:共享 NACK 变体绕过 CVE-2026-25243 修复;TopK 野指针释放绕过 CVE-2026-25589 修复(部分指针归零 — TopK_Destroy 在 RedisBloom v8.8.0 和 v8.8.2 中仍会读取超出过小堆的所有 k 个指针)。
  • 可靠性:6.2.22 10/10、7.4.9 5/5、8.6.4 25/25、8.8.0 5/5 均在 全新容器上验证通过。失败会干净地中止;请重新运行或使用包装脚本。

仅限授权测试使用。

下载工具