
为什么很多SSRF最终都会打RedisRedis未授权访问学习笔记大家好最近在学习 SSRF 利用链。上一篇文章学习了 Gopher 协议了解到它能够帮助 SSRF 与内网服务进行交互。学习过程中发现一个出现频率极高的目标Redis很多利用链都是SSRF↓Gopher↓Redis↓RCE那么问题来了Redis 明明只是数据库为什么会成为攻击者最喜欢的目标之一今天整理一下自己的学习笔记。一、什么是 RedisRedis 是一种高性能 Key-Value 数据库。特点速度快内存存储支持缓存支持消息队列支持持久化很多网站都会使用 Redis。例如用户登录状态验证码缓存数据排行榜购物车都可能存储在 Redis 中。二、什么叫未授权访问正常情况下客户端↓认证↓Redis需要密码。例如AUTH password 认证成功才能继续操作。但是很多管理员部署时没有设置密码或者bind 0.0.0.0开放到公网。于是形成任何人↓连接6379↓操作Redis这就是未授权访问。三、为什么危险很多人觉得数据库被看见最多泄露数据。实际上 Redis 远不止如此。因为 Redis 支持读写保存文件修改配置这就给攻击者创造了机会。四、Redis 常见危险操作查看数据keys *获取内容get username查看配置config get *修改配置config set保存数据save这些能力组合起来后影响远超数据库泄露。五、为什么能导致RCERedis 本身不会执行系统命令。但它有一个特殊能力把数据保存到磁盘例如config set dir /var/www/htmlconfig set dbfilename shell.phpsave如果环境配置不当。可能将内容写入网站目录。形成WebShell思路写入恶意内容↓保存文件↓访问文件↓执行代码这也是经典利用链之一。六、SSRF 为什么喜欢 Redis因为很多 Redis 只监听127.0.0.1外部无法连接。例如127.0.0.1:6379管理员认为只有本机能访问因此没有额外防护。但当网站存在 SSRF攻击者↓SSRF↓127.0.0.1:6379这种信任关系就被打破。七、经典攻击链学习时经常看到所以SSRF只是入口。Redis才是很多利用链的重要目标。八、真实环境为什么越来越少早期很多 Redis无密码开放公网导致大量安全事件。如今默认配置已经更加安全。常见措施密码认证仅本机监听防火墙限制云安全组限制因此直接利用的难度越来越高。但理解原理仍然十分重要。九、容易犯的错误看到Redis未授权就认为一定RCE实际上并不是。是否能进一步利用。取决于文件权限运行身份目标环境目录权限系统配置所以Redis未授权 ≠ 必然RCE但风险依然很高。十、总结今天学习了 Redis 未授权访问原理。记住一句话Redis危险的不是存储数据而是它拥有写文件和修改配置的能力。很多 SSRF 利用链最终都会指向 Redis。因为 Redis 往往部署在内网而且默认信任本机访问。因此理解 Redis 未授权访问是理解 SSRF 利用链的重要一步。