你的GCP基础设施价值几何?约700美元的漏洞赏金故事

本文详细描述了作者在Shodan上发现Tokopedia开放的Jupyter Notebook服务器,通过获取GCP服务账户令牌获得对BigQuery等关键服务的访问权限,最终报告了关键漏洞但赏金支付过程曲折的真实经历。

你的GCP基础设施价值几何?约700美元的漏洞赏金故事

漏洞赏金故事 #bugbountytips

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

时间线:

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

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

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

开放的Jupyter Notebook服务器

Open Jupyter notebook server

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

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

When you leave your service token in the folder for all to find/use

在这种情况下,它是base64编码的 - 但很容易修复。

服务账户令牌b64解码

service account token b64 decoded

它也在其中一个jupyter notebook的错误输出中。

It was also in the error output of one of the jupyter notebooks

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

Once I identified it was owned by someone with a bug bounty program I figured it was ok to prove access and impact.

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

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

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

Bigquery表 o_0

Bigquery tables o_0

[+] Bigquery访问 [+]

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

数据计费表 yo

Dat billing table yo

我喜欢支付表

I love payments tables

在此过程中,我搜索了这家公司是谁。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 设计