挖洞经验 | 一个价值$3133.7美金的Google漏洞
字数 1633 2025-08-18 11:37:42
Google云平台安全漏洞分析与利用教学文档
漏洞概述
本教学文档详细分析了一个价值3133.7美金的Google云平台安全漏洞。该漏洞存在于Google云服务平台"cloud.google.com"中,通过精心构造的HTTP请求,攻击者能够获取服务器的内部配置信息和敏感数据。
漏洞发现过程
初始发现
研究人员在对Google云服务进行安全测试时,发现了一个有趣的请求:
https://cloudusersettings-pa.clients6.google.com/batch?%24ct=multipart%2Fmixed%3B%20boundary%3Dbatch392541909285510985
该请求具有以下特点:
- GET请求被包含在POST请求中
- 可以通过主请求URL中的值控制content-type
- POST请求内容中包含了一个key值
请求处理机制分析
服务器"cloudusersettings-pa.clients6.google.com"的处理流程:
- 通过POST请求内容将GET请求中继转发给中间服务器
- 中间服务器(可能是反向代理或负载均衡器)解析GET请求
- 中间服务器不关心原始POST请求的header,只解析POST请求中的GET请求header
漏洞利用思路
可控制点
- 可以控制中间服务器将要处理的header头信息
- 可以通过URL中的参数控制响应内容类型
- 请求内容中包含key和授权头值(authorization header value)
测试方法
研究人员尝试了多种测试方法:
-
虚拟主机名枚举
- 在HOST头中尝试dev、localhost、portal等常见虚拟主机名
- 目的:发现暴露的webserver配置信息
- 结果:失败
-
IP地址欺骗
- 使用以下header伪造IP:
X-Forwarded-For: 127.0.0.1 X-Client-IP: 127.0.0.1 Client-IP: 127.0.0.1 - 目的:欺骗Google后端服务器
- 结果:失败
- 使用以下header伪造IP:
-
错误诱导
- 发送大量垃圾数据(如AAAAA)
- 修改HTTP协议版本
- 添加随机header
- 操纵content-type
- 目的:促使服务器出错暴露信息
- 结果:失败
-
User-Agent测试
- 测试Blind XSS或SQL注入
- 结果:失败
-
Origin头操纵
- 测试CORS配置错误
- 结果:Google有良好的origin验证
突破性发现:X-HTTP-Method-Override利用
X-HTTP-Method-Override原理
该header允许客户端覆盖HTTP方法:
- 可以发送GET请求但声明为PUT、POST或DELETE方法
- 服务器会按照声明的覆盖方法处理请求
示例请求:
GET /test.php HTTP/1.1
Host: google.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
X-HTTP-Method-Override: PUT
Accept-Encoding: gzip, deflate
Connection: close
实际应用场景
- 中间设备(如WAF)可能限制HTTP方法(仅支持GET/POST)
- 后端服务器支持更多方法(如PUT/DELETE)
- 通过X-HTTP-Method-Override可以绕过限制
漏洞利用结果
虽然未能实现RCE,但发现:
- 中间服务器无法解析设置的header时抛出错误
- 错误消息中包含大量敏感信息:
- HTTPOnly和Secure cookies
- SSL握手信息
- 服务器间通信的IP地址和端口
- 授权头信息和其他敏感数据
潜在攻击场景
- CSRF攻击:构造恶意请求针对Google用户
- 信息窃取:在反射型XSS场景下窃取HTTPOnly cookies
- 攻击需要更改X-HTTP-Method-Override属性
漏洞修复与奖励
- Google将漏洞分类为P1级别(重要)
- 迅速修复了该漏洞
- 奖励研究人员3133.7美金
教学总结
关键学习点
- 请求处理链分析:理解请求在多层架构中的流转过程
- header操纵技术:特别是X-HTTP-Method-Override的应用
- 错误信息利用:从错误响应中提取敏感信息
- 安全测试方法论:系统性的测试方法探索
防御建议
- 严格验证所有输入,包括header
- 限制错误消息中的信息暴露
- 实施严格的中间件配置
- 监控异常的X-HTTP-Method-Override使用
扩展思考
- 类似技术在其他云平台的应用可能性
- 多层架构中的安全边界验证
- HTTP协议特性的安全影响评估
通过本案例,安全研究人员可以学习到如何通过系统性的测试方法发现复杂系统中的安全漏洞,以及如何利用协议特性绕过安全限制。