第五篇:Redis 命令注入漏洞|成因、Payload 利用场景与代码层防御方案
摘要Redis 命令注入一般出现在应用直接拼接用户可控参数构造 Redis 命令的场景攻击者可以注入恶意 Redis 指令读写缓存、修改持久化配置严重时可配合写入文件拿下服务器权限。本文讲解漏洞成因、实战场景、Payload 示例以及完整防御方案。前言提到 Redis 安全大家最熟悉未授权访问、主从复制 RCE很容易忽略Redis 命令注入。 这类漏洞根源不在 Redis 本身而是后端代码直接把前端传入的用户参数不加过滤拼接进 Redis 命令直接交给 Redis 执行。 攻击者可以截断原有 Redis 语句追加任意 Redis 指令实现数据篡改、文件写入在特定条件下甚至拿到服务器权限。一、漏洞产生原理正常业务伪代码示例危险写法// 用户输入 $name $_GET[name]; $cmd SET user_name . $name; $redis-rawCommand($cmd);如果后端使用rawCommand原生执行命令直接拼接用户可控输入没有转义特殊分隔符攻击者传入带换行符的 payload就可以切断原有命令新增多条 Redis 指令。Redis 协议使用\r\n作为命令分隔符%0d%0a是 URL 编码后的\r\n这就是注入的核心。区分未授权访问攻击者直连 Redis 服务不需要应用参与Redis 命令注入通过 Web 应用作为媒介利用代码漏洞向 Redis 注入指令攻击者无法直接连接 Redis二、漏洞利用场景与 Payload场景 1写入恶意数据、覆盖缓存传入 payloadtest%0d%0aSET admin_is_admin 1%0d%0a拼接后执行的 Redis 命令变成SET user_name test SET admin_is_admin 1攻击者直接修改缓存里管理员标识实现越权登录。场景 2配合持久化写入 Webshell条件苛刻前提Redis 有写入网站目录权限知道网站物理路径。 Payload 示例 URL 编码aaa%0d%0aCONFIG SET dir /var/www/html%0d%0aCONFIG SET dbfilename shell.php%0d%0aSET shell ?php eval($_POST[cmd]);?%0d%0aSAVE%0d%0a拼接后多条指令依次执行将一句话木马保存到网站目录。场景 3清空 Redis 全部数据xxx%0d%0aFLUSHALL%0d%0a业务缓存全部清空网站业务崩溃。三、漏洞检测思路找到传入参数可控的接口尝试传入%0d%0a观察是否触发多条命令执行尝试注入简单命令例如%0d%0aKEYS *%0d%0a看是否返回 key 列表代码审计重点查找rawCommand、eval原生命令执行是否直接拼接外部输入。注意使用 SDK 封装好的set()、get()方法一般不会存在注入。 危险点rawCommand、自行组装 Redis 协议原始命令。四、修复与防御方案禁止拼接用户输入构造原生 Redis 命令优先使用 SDK 封装好的方法参数作为函数参数传入由 SDK 自动处理转义不要手动拼接字符串。 ✅安全写法PHP 示例$redis-set(user_name, $name);严格过滤输入 如果必须使用 rawCommand对用户输入过滤\r、\n、换行等控制字符。Redis 最小权限原则禁止 Redis 以 root 运行限制 RDB/AOF 写入目录禁止写入网站根目录重命名高危命令CONFIG、SAVE、FLUSHALL等。网络层面防护 Redis 内网部署不暴露公网设置密码。输入输出校验 对业务参数做白名单校验限制参数长度、字符类型只允许业务所需字符。五、易混淆知识点总结Redis 命令注入属于应用层代码漏洞不是 Redis 服务本身漏洞注入核心是\r\n换行分隔符Redis 协议用换行分割多条命令主流语言 Redis 客户端Java Jedis、PHP redis 扩展调用封装 API 天然防御只有手写原始命令才会踩坑。总结Redis 命令注入相比未授权访问利用门槛更高但是在代码审计和渗透测试中经常出现。开发人员不要手动拼接 Redis 原始命令尽量使用 SDK 封装 API就能从根源杜绝该漏洞。安全防护需要兼顾服务本身安全 业务代码安全。免责声明本文仅用于网络安全学习研究未经授权的渗透测试属于违法行为。

相关新闻

Arduino CLI 完全指南:安装部署、核心命令与 gRPC 编程接口

Arduino CLI 完全指南:安装部署、核心命令与 gRPC 编程接口

开发工具嵌入式 【免费下载链接】arduino-cli Arduino command line tool 项目地址: https://gitcode.com/gh_mirrors/ar/arduino-cli 点击查看 免费下载 Arduino CLI 是 Arduino 官方出品的命令行一体化工具,集 Boards/Library 管理器、Sketch 构建器、…

2026/10/5 13:10:00 阅读更多 →
GameAISDK 中的 JSON 基础设施:JsonCpp 库集成、构建与配置解析实战指南

GameAISDK 中的 JSON 基础设施:JsonCpp 库集成、构建与配置解析实战指南

人工智能强化学习计算机视觉游戏开发测试 【免费下载链接】GameAISDK 基于图像的游戏AI自动化框架 项目地址: https://gitcode.com/gh_mirrors/ga/GameAISDK 点击查看 免费下载 本指南以 GameAISDK 仓库内置的 JsonCpp 源码(Modules/Json/jsoncpp-maste…

2026/10/5 13:10:00 阅读更多 →
Claude Code 系统提示词解析:Artifact 运行时能力声明(capabilities)的语义、契约与自我发布规则

Claude Code 系统提示词解析:Artifact 运行时能力声明(capabilities)的语义、契约与自我发布规则

文档提示工程人工智能 【免费下载链接】claude-code-system-prompts All parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, s…

2026/10/5 13:10:00 阅读更多 →

最新新闻

SpringBoot+Vue宠物健康顾问系统:从架构设计到前后端分离实践

SpringBoot+Vue宠物健康顾问系统:从架构设计到前后端分离实践

1. 项目概览:这个“宠物健康顾问”到底是什么 先说结论:这套SpringBootVue的宠物健康顾问系统,核心是做“宠物医院的轻量级数字化管理”。它不是一个花架子demo,而是把真实宠物门诊日常要干的几件事——宠物档案建档、在线问诊、疫…

2026/10/5 13:57:20 阅读更多 →
SpringBoot+Vue宠物健康顾问系统全栈开发实战解析

SpringBoot+Vue宠物健康顾问系统全栈开发实战解析

毕业后第一次做全栈项目,不少人会直接选“宠物健康顾问系统”。说实话,这个题目在毕设和课设里出现的频率相当高,数据模型清晰、业务边界明确、技术栈又刚好踩在主流Java后端和前端框架上,用来锻炼完整的项目开发流程再合适不过。…

2026/10/5 13:57:20 阅读更多 →
Ubuntu 20.04 源码编译 OpenCV 3.3.1 全流程与避坑指南

Ubuntu 20.04 源码编译 OpenCV 3.3.1 全流程与避坑指南

简介:针对 Ubuntu 20.04 重新适配的 OpenCV 3.3.1 资源包,面向需要在较新系统上编译旧版 OpenCV 的开发者、人工智能与计算机视觉学习者。作者已修正 CODEC_FLAG_GLOBAL_HEADER、AVFMT_RAWPICTURE 未声明及 const char* 转 char* 等编译错误,…

2026/10/5 13:56:20 阅读更多 →
苏凌丘国庆希尔顿酒店举办订婚宴 学霸女神情定金秋

苏凌丘国庆希尔顿酒店举办订婚宴 学霸女神情定金秋

(2026年10月3日) 国庆佳节,喜事临门。曾因江苏卫视《非诚勿扰》备受关注的“学霸女神”苏凌丘,于国庆在希尔顿酒店举办订婚宴,正式与男友许下携手一生的承诺。这是继今年8月男友在W酒店秘密求婚后,两人感情…

2026/10/5 13:56:20 阅读更多 →
用 @Docs 与项目 README 约束幻觉:Cursor 文档索引配置与提问模板

用 @Docs 与项目 README 约束幻觉:Cursor 文档索引配置与提问模板

用 Docs 与项目 README 约束幻觉:Cursor 文档索引配置与提问模板 Agent 「一本正经地胡说」时,观众爱骂模型;工程上更常缺的是材料与约束:没有版本对齐的文档索引,没有当真相源的 README,提问又允许它「凭印…

2026/10/5 13:56:20 阅读更多 →
Python自动化:PPT一键转视频的完整技术方案与代码实践

Python自动化:PPT一键转视频的完整技术方案与代码实践

做这行的朋友应该都有过这种经历:汇报前夜改了八遍PPT,第二天发现讲稿和页面顺序对不上;或者要录一节网课,手动点鼠标翻页加录音折腾到凌晨。当"幻灯片"和"视频"这两个词出现在同一个需求里,很多人…

2026/10/5 13:56:20 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →