研究员发现 Google Cloud 项目中的 SSRF 漏洞,获1万美元奖金
编译:代码卫士
安全研究员David Schütz 发现谷歌 Cloud 项目中存在一个 URL 解析漏洞,可导致项目易受服务器端请求伪造(SSRF)攻击。目前该漏洞已修复,它本可导致攻击者访问敏感资源并运行恶意代码。
Schütz 在研究 Discovery Documents(提供Google API 服务的标准的数据结构)时,发现了一个有趣的服务 “Jobs APT”,从名称上看它是一项内部服务。
Jobs API 将他引向 Google App Engine 上的一款应用程序。Google App Engine 用作代理,使用户能够通过谷歌的公开产品营销页面触及 API。该代理是向API提供访问权限的中介,也就是说它具有一个访问令牌,可作为SSRF攻击的窗口。
该代理阻止通过以白名单方式运行请求URL的方式访问谷歌的内部资源。但之后Schütz 设法诱骗该URL解析器绕过白名单,将请求发送给任意服务器。这就使得他能够从该代理app将请求发送至可在谷歌 Cloud 上运行的VPS服务器。该请求泄露了代理app的访问令牌,之后被用于将请求发送给其它的内部谷歌Cloud项目。
Schütz指出,核心问题在于URL解析漏洞导致SSRF。
此前,他曾在谷歌的一个 JavaScript 库中找到了类似漏洞,该库用于很多谷歌服务中。
Schütz 通过访问令牌获取了可访问的内部项目清单、云存储桶、虚拟机以及该代理应用的管理接口。通过该管理接口,他访问了包含敏感用户信息和app本身实例的日志,通过逆向可获取其源代码。该管理接口尤为危险,因为它具有对App Engine 实例的完全控制权限,可使攻击者破坏服务、收集用户信息或上传恶意代码。
为了展示该漏洞的影响,Schütz 在该代理服务上创建并上传了一款 Python 应用程序,可返回base64信息。为避免破坏主要服务,他将该应用上传为非默认版本的代理服务。
Schütz 指出,“这个漏洞应该是行业范围内的问题,因为不同的应用程序基于不同的标准解析URL。披露了谷歌 JS 库中的第一个问题后,我发现很多其它公司也修复了产品中的这个问题。即便如此,这个问题甚至仍然会出现在谷歌。这个SSRF 漏洞就是一个绝佳例子。“
谷歌漏洞奖励计划为此向Schütz办法了4133美元的奖金。漏洞修复后,它发现,虽然原始的exploit 已经无法在代理中运作,但该URL解析器让然可通过另一种方法被绕过。这个新漏洞为他赢得3133美元的奖励。
随后,他因为发现并报告Google App Engine的老旧版本仍在运行而获得另外3133美元的奖励。
微软推出 Power Platform 漏洞奖励计划
HackerOne漏洞奖励计划扩展至开源漏洞
https://portswigger.net/daily-swig/researcher-finds-ssrf-bug-in-internal-google-cloud-project-nabs-10-000-bounty
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。