GCP基础设施安全漏洞挖掘与700美元漏洞赏金故事

本文详细记录了在BugBounty项目中发现的GCP安全漏洞,包括开放的Jupyter Notebook服务器、暴露的GCP服务账户令牌以及由此获得的基础设施访问权限,最终发现关键数据表但未获得应得赏金的过程。

BugBounty故事 #bugbountytips

一个已修复但未支付漏洞赏金的故事…

时间线:

  • 2019年10月21日报告
  • 2019年10月23日确认为严重级别
  • 2019年10月30日确认已修复
  • 2019年11月12日确定赏金金额(1000万印尼盾≈700美元)
  • 2019年11月16日提供支付信息
  • 2020年3月13日 - 从未支付 - 发布博客文章
  • 2020年3月19日 - 收到565.86美元赏金

有很多应用程序是SAAS - Shell即服务。Jupyter Notebook就是其中之一,具有运行代码功能和终端功能。

当我在Shodan上搜索易受攻击的设备时,发现了一个属于Tokopedia的开放Jupyter Notebook。起初这并不明显,但查看截图后就会清楚我是如何识别这一点的。

开放的Jupyter Notebook服务器

开放的Jupyter Notebook服务器

我在之前的文章中讨论过当找到GCP密钥时该怎么做。当人们将GCP服务账户密钥留在文件夹中时,这一点尤其重要。

当你将服务令牌留在文件夹中供所有人查找/使用时

服务账户令牌b64解码

在这种情况下,它是base64编码的 - 但很容易修复。它也在其中一个jupyter notebook的错误输出中。

错误输出中的令牌

我使用终端进行了一些基本探查,以找到所有者。

识别所有者

一旦我确定它属于某个有漏洞赏金计划的人,我认为证明访问和影响是可以的。

根据GCP博客文章,一旦你拥有服务账户令牌,你就可以进行身份验证并与你的令牌有权访问的服务进行交互。

在GCP计算主机上获取shell的便利之处

在GCP计算主机上获取shell的便利之处在于,所有GCP工具都已安装并"正常工作"。实际上,我不需要从外部主机执行任何操作,我能够从jupyter终端内部开始ssh到其他主机。

Bigquery表

[+] Bigquery访问 [+]

1
bq ls --format=prettyjson --project_id tokopedia-970

数据计费表

我喜欢支付表。

在此过程中,我搜索了这家公司是谁。https://en.wikipedia.org/wiki/Tokopedia

最有趣的是…

2017年,Tokopedia从中国电子商务巨头阿里巴巴获得了11亿美元的投资。[7] 2018年,该公司又获得了由中国电子商务巨头阿里巴巴集团和日本软银集团领投的11亿美元融资轮[8],使其估值达到约70亿美元。[9]

所以作为一个好人(tm),我报告了这个问题,并被指定为严重级别。他们超级快速地修复了它,团队在修复之前相当响应。之后,花了2周时间才获得赏金信息,我及时提供了支付信息,但我从未收到付款,他们已停止回应我的询问。

解决方案:

在有限权限容器中运行(不能防止云元数据攻击)

新版本的Jupyter notebook允许密码保护访问。这样做而不是向所有人开放。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计