Redis CVE-2022-24834 复现

(CVE-2022-24834) 在 Redis 中执行的特制 Lua 脚本可能会触发 cjson 和 cmsgpack 库中的堆溢出,并导致堆损坏和潜在的远程代码执行。从 2.6 开始,所有支持 Lua 脚本的 Redis 版本都存在该问题,并且仅影响经过认证和授权的用户。

GitHub - convisolabs/CVE-2022-24834Contribute to convisolabs/CVE-2022-24834 development by creating an account on GitHub.https://github.com/convisolabs/CVE-2022-24834

测试过的版本和环境

Redis 7.0.11 on Ubuntu 20.04 (via own compilation) - SUCCESS

Redis 7.0.11 on Ubuntu 20.04 (via apt using Redis official repository) - SUCCESS

Redis 7.0.11 on Ubuntu 20.04 (via docker image redis:7.0.11) - SUCCESS

Redis 6.2.12 on Ubuntu 20.04 (via docker image redis:6.2.12) - SUCCESS

Redis 7.0.11 on Debian 11 (via apt using Redis official repository) - SUCCESS

自己亲自在官方“redis:7.0.11”容器镜像上测试成功,能直接拿到shell。

Redis CVE-2022-24834 复现_第1张图片

需要 pwn 库支持:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pwn

GitHub - convisolabs/CVE-2022-24834 中的代码没有支持密码登录redis,如果需要密码方式,修改如下:

    def cmd(self, argv):
        self.conn = pwn.remote(self.host, self.port)
        self.conn.send(self.prepare(["AUTH", "user1", "123456"]))
        self.conn.send(self.prepare(argv))
        return self.recv()

另外一个低版本的RCE

GitHub - Ridter/redis-rce: Redis 4.x/5.x RCERedis 4.x/5.x RCE. Contribute to Ridter/redis-rce development by creating an account on GitHub.https://github.com/Ridter/redis-rce

GitHub - n0b0dyCN/redis-rogue-server: Redis(<=5.0.5) RCERedis(<=5.0.5) RCE. Contribute to n0b0dyCN/redis-rogue-server development by creating an account on GitHub.https://github.com/n0b0dyCN/redis-rogue-server

你可能感兴趣的:(redis,数据库,缓存)