什么是Redis?为何它会成为攻击入口?
在现代互联网架构中,Redis 已成为不可或缺的高性能键值数据库。它基于内存运行,支持持久化,广泛应用于缓存系统、消息队列、计数器等场景。

然而,由于其默认配置存在安全隐患——无密码认证 + 监听公网端口,导致“Redis未授权访问漏洞”频发,成为黑客入侵服务器的重要跳板。
一旦攻击者通过该漏洞获取控制权,便可轻松实现 GetShell,进而掌控整个服务器系统。本文将深入剖析Redis未授权访问的成因、四种主流GetShell方法,并提供完整复现流程和防御建议,适合网络安全初学者与运维人员阅读。
漏洞成因:为什么会出现未授权访问?
Redis 默认监听 6379 端口,若未做安全加固,极易暴露于公网。以下是常见配置不当的情况:
| 配置项 | 默认值 | 安全风险 |
|---|---|---|
bind | 127.0.0.1 | 若设置为 0.0.0.0 或注释掉,则监听所有IP |
protected-mode | yes | 若关闭且无密码,则允许远程连接 |
requirepass | 无 | 未设置密码时无需认证即可登录 |
✅ 结论:只要满足以下任一条件,就可能存在未授权访问:
未设置密码,且
bind为0.0.0.0未设置密码,
protected-mode no,且无防火墙限制
此时,攻击者只需执行如下命令即可连接目标Redis服务:
无需密码,直接进入交互模式,拥有完整的读写权限!
GetShell四大经典手法详解
方法一:WebShell 写入(需知网站路径)
适用前提:
目标服务器运行Web服务
Redis有权限写入Web目录(如
/var/www/html)Web容器能解析PHP/JSP等脚本
攻击流程:
连接Redis服务:
设置备份路径为Web目录,并更改文件名为
.php:写入一句话木马(注意换行符保护):
使用蚁剑或Burp Suite连接
http://target/webshell.php,密码为cmd,成功GetShell!
📌 提示:使用双引号包裹payload以确保 \n 被正确解析。
方法二:SSH公钥认证(高权限提权利器)
适用前提:
Redis以 root用户 启动
目标开启SSH服务,且允许密钥登录(
PubkeyAuthentication yes)
攻击流程:
在攻击机生成SSH密钥对:
将公钥内容加载到Redis中(前后加换行防止格式错误):
修改Redis备份路径为
.ssh目录并保存为authorized_keys:使用私钥直接SSH登录:
✅ 成功免密登录,获得root shell!
方法三:计划任务反弹Shell(通用性强)
适用前提:
Redis以高权限(如root)运行
系统支持crontab定时任务
攻击流程:
设置备份目录为计划任务目录:
指定文件名为
root(代表root用户的cron任务):写入反弹shell指令(每分钟执行一次):
攻击机监听端口:
等待片刻,即可收到目标机器反连的shell!
⚠️ 注意:此操作会覆盖原有root计划任务,易被发现,建议使用后及时清理。
方法四:主从复制+模块注入(适用于Redis 4.x/5.x)
这是近年来较为高级的利用方式,利用Redis模块扩展机制执行任意命令。
工具推荐:
使用步骤:
克隆项目并编译恶意模块:
启动恶意Redis服务,诱使目标连接为从节点:
工具自动建立主从同步,加载so模块并执行指定命令(如反弹shell、提权等)
🎯 此方法不依赖文件写入,隐蔽性更强,是目前自动化攻击常用手段。
检测与防护建议
🔍 如何检测是否存在Redis未授权访问?
🛡️ 安全加固措施(运维必看!)
| 措施 | 配置方法 |
|---|---|
| ✅ 设置强密码 | 在 redis.conf 中添加:requirepass YourStrongPassword123! |
| ✅ 绑定内网IP | bind 127.0.0.1 或具体内网段 |
| ✅ 关闭保护模式仅限可信环境 | protected-mode yes(默认开启) |
| ✅ 修改默认端口 | port 6380(非必要不暴露) |
| ✅ 使用防火墙限制 | iptables/云安全组仅允许可信IP访问6379 |
| ✅ 降权运行Redis | 使用普通用户启动Redis进程 |
| ✅ 禁用危险命令 | 如 FLUSHALL, CONFIG, EVAL 等:rename-command FLUSHALL "" |
安全源于细节
Redis未授权访问虽非严格意义上的“漏洞”,但因配置疏忽而引发的安全事件屡见不鲜。从WebShell到SSH登录,再到计划任务与模块注入,攻击手法多样且危害巨大。
作为开发者或运维人员,务必牢记:
绝不将数据库服务直接暴露在公网!
最小权限原则 + 密码认证 + 防火墙策略 = 基础安全保障





















