打破传统思维 | 另一视角下的SSRF
字数 1303 2025-08-19 12:41:34
突破传统:SSRF漏洞的新型利用视角与实战教学
1. SSRF基础概念
服务器端请求伪造(SSRF)是一种安全漏洞,允许攻击者操纵服务器发送伪造请求。攻击者通过篡改应用向URL发起的数据导入、发布或其他读取操作的请求,使其指向不同的地址,或通过路径遍历等方式操控URL构建,达到访问内部资源的目的。
2. 传统SSRF利用方式
传统SSRF利用主要关注:
- 探测内网服务与端口
- 获取内网敏感数据
- 实现远程代码执行(RCE)
- 访问云服务元数据接口(如AWS/Azure的169.254.169.254)
企业防御措施通常包括:
- 内网关键系统隔离
- 端口访问限制
- 严格的网络策略
- 元数据接口访问控制
3. 新型SSRF利用视角:账户接管
3.1 核心思路
利用SSRF作为跳板,间接触及客户端,目标直指用户及其数据,特别是在子域名下的SSRF利用。
3.2 关键突破点
- 反射客户端头部信息:让SSRF反映出客户端使用的头部信息,如同代理一般
- 定义应用程序中的代理设置:实现类似子域名接管的效果
- 控制子域名流量:掌控所有流向该子域名的内容
3.3 攻击场景
虽然非核心子域或开发环境中的影响可能有限,但最终目标是影响用户,实现:
- 会话劫持
- 账户接管
- 敏感数据泄露
4. 实战利用步骤详解
4.1 前提条件
- 存在SSRF漏洞的端点位于
ssrf.dev.example.com - 目标域
example.com下有其他使用认证的应用程序 - 目标应用的Cookie设置如下:
Set-cookie: session=<session_token>
4.2 攻击流程
-
识别可利用的子域名:
- 查找
*.example.com下使用认证的应用程序 - 确认这些应用的Cookie设置方式
- 查找
-
构造恶意请求:
- 利用SSRF端点构造指向目标子域名的请求
- 确保请求能够反射客户端头部信息
-
会话劫持:
- 当用户访问SSRF端点时,服务器会向目标子域名发送请求
- 该请求会携带用户的会话Cookie
- 攻击者可获取这些信息实现会话劫持
-
扩大影响:
- 如果子域名使用通配符Cookie(如
.example.com) - 可影响所有
example.com下的子域名
- 如果子域名使用通配符Cookie(如
4.3 技术细节
- HTTP头部注入:通过控制请求头部实现信息泄露
- 协议处理:利用不同协议(如file://, gopher://)扩大攻击面
- DNS重绑定:绕过IP限制,访问内部服务
5. 防御措施
5.1 开发层面
- 实施严格的输入验证和过滤
- 禁用不必要的URL协议
- 使用白名单限制可访问的域名和IP
5.2 网络层面
- 隔离内部服务,限制出站连接
- 实施网络分段,减少横向移动可能
- 监控异常出站请求
5.3 Cookie安全
- 避免使用通配符Cookie(如
.example.com) - 为敏感Cookie设置
HttpOnly和Secure标志 - 实施SameSite Cookie策略
6. 总结
这种新型SSRF利用方式突破了传统内网渗透的思路,将攻击目标转向客户端和用户数据。安全团队需要重新评估SSRF的实际影响,特别是在涉及用户会话和认证的场景下。防御措施应从开发实践、网络架构和会话管理等多方面入手,构建纵深防御体系。