你有没有听说过Google Issue Tracker? 可能不会,除非您是Google员工或最近报告Google工具中的错误的开发人员。 我也没有,直到我发现我的漏洞报告现在通过在那里打开一个新线程来处理,除了通常的电子邮件通知。

所以我立即开始尝试打破它。

那么这个网站究竟是什么? 根据文档,问题跟踪器(内部称为Buganizer系统)是Google内部使用的一种工具,用于在产品开发期间跟踪错误和功能请求。 它可在Google以外的地方使用,供需要与Google团队就特定项目协作的外部公众和合作伙伴用户使用。

换句话说,当某人遇到Google产品问题时,该问题就会发布在问题跟踪器中。 有道理,对吗? 作为外部用户,我们只能看到冰山一角:一小部分预先批准的类别,以及Google上的某个人明确添加了外部帐户(例如漏洞报告)的问题 。 但表面下有多少信息?

通过观察分配给最新公共线程的数字ID,我们可以轻松估计此工具在内部使用的次数。 Mountain View的工作时间每小时有大约2000-3000个问题 ,其中只有0.1%是公开的。 看起来像这个系统中的数据泄漏会产生相当大的影响。 让我们打破它!

尝试#1:获取Google员工帐户

我在发现问题跟踪器时注意到的第一件事是,通过将电子邮件发送到特殊地址参与讨论的能力如下所示:

buganizer-system + componentID + issueID @ google.com

(其中componentID是表示类别的数字, issueID是您正在响应的线程的唯一标识符)

这让我想起最近发现的一个名为Ticket Trick的发现,它允许黑客利用这种电子邮件系统渗透到组织的聊天系统中。 考虑到这是@ google.com的电子邮件地址,我尝试使用它注册Google的Slack团队,并且我得到的确认页看上去非常有前途:

唉,Slack没有收到任何电子邮件。

我能想到的下一个最好的事情是获得一个带有@ google.com主电子邮件地址的Google帐户,这将有助于我在Buganizer上获得一些额外的权限。 不应该允许从谷歌外部注册这样的帐户:

但是,我发现了一种绕过此过滤器的方法:如果我注册了任何其他虚假的电子邮件地址,但未能通过单击通过电子邮件收到的链接确认该帐户,我可以不受任何限制地更改我的电子邮件地址。 使用这种方法,我将新的Google帐户的电子邮件更改为buganizer-system+123123+67111111@google.com

不久之后,我在相应的问题页面上收到确认电子邮件作为消息:

太好了! 我点击确认链接,登录问题跟踪器,然后......

我被重定向到企业登录页面。 不,我的Google帐户凭据在那里不起作用。 游民。

尽管如此,这个账户在互联网上的其他地方给了我很多额外的好处,包括搭便车的能力(免费,也许?),所以它仍然是一个安全问题,为恶意用户打开了很多门。

接受: 11小时 | 赏金: 3,133.7美元 | 优先级: P1


尝试#2:获取有关内部通知的通知

另一个引起我注意的问题跟踪器功能,同时熟悉界面是明星项目的能力。 主题问题意味着您对正在讨论的问题感兴趣,并且您希望在有人添加评论时收到电子邮件通知。

我注意到这个功能的有趣之处在于在尝试在我无法访问的问题上使用它时明显缺乏错误。 访问控制规则似乎从未应用于此端点,因此我登录到了我的第二个帐户,并试图通过替换请求中的问题标识来为我的主帐户发布漏洞报告。 然后我看到这个消息,这意味着这个行动已经取得成功:

有1人已经为此问题出演过。

能够轻松窥探开放的Google漏洞吗? 我很快发布了关于这个问题的评论,看看我的虚构攻击者账户是否会得到通知。

但是,再一次,没有电子邮件出现过。

出于某种原因,我真的不记得了,我决定在这个上做一些进一步的测试。 因此,我得到了一个最近的问题ID,并且推导了一系列几千个ID,这些ID应该与数据库中的最新问题一致。 然后我全部出演。

在几分钟内,我的收件箱看起来像这样:

我打开收件箱的第一个想法是“大奖!”。

然而,仔细观察后,这些线索中没有什么特别有趣的事情发生。 显然,我只能窃听与翻译有关的对话,人们会讨论用不同语言传达短语含义的最佳方式。

我甚至考虑过几个小时没有报告,希望我能找到一种方法来提高严重程度。 最后,我意识到Google安全团队可能会对找到可能的数据透视方法和变体感兴趣,所以我发送了详细信息。

接受: 5小时 | 赏金: $ 5,000 | 优先级: P0


尝试#3:游戏结束

当您作为外部用户访问问题跟踪器时,其大部分功能都被剥离,从而使您拥有极其有限的权限。 如果您想查看Google员工所能做的所有酷炫工作,则可以在JavaScript文件中查找API端点。 其中一些功能被完全禁用,其他功能则完全隐藏在界面中。

在设计这个限制版本的系统时,有人很好地留下了一种方法,让我们将自己从CC列表中移除,以防我们对某个问题失去兴趣或不想再收到有关它的电子邮件。 这可以通过发送像这样的POST请求来实现:

  POST / action / issues / bulk_edit HTTP / 1.1 
  {  “issueIds”:  67111111,  67111112  ]  “行动”:  {  “字段名”: “CCS”,  “值”:“test@example.com”  “操作类型”:“删除”  }  ]  } 

但是,我注意到一些疏忽导致了一个巨大的问题:

  1. 不正确的访问控制:在尝试执行给定操作之前,没有明确检查当前用户是否实际访问issueIds指定的问题。
  2. 静默失败 :如果您提供的电子邮件地址当前不在CC列表中,则端点将返回一条消息,指出已成功删除电子邮件。
  3. 作为回应的完整问题详细信息:如果在操作过程中没有发生错误,系统的另一部分假定用户具有适当的权限。 因此,有关给定问题ID的每个细节都将在HTTP响应主体中返回。

现在我可以通过替换issueIds的请求中的issueIds来查看数据库中每个问题的详细信息。 答对了!

我只尝试查看几个连续的ID,然后从一个不相关的帐户攻击我自己,以确认此问题的严重性。

是的,我可以查看有关漏洞报告的详细信息以及Buganizer上托管的所有其他信息。

更糟糕的是,我可以在单个请求中清除有关多张票的数据,因此实时监控所有内部活动可能不会触发任何限速器。

我立即将漏洞细节发送给Google,他们的安全团队在一小时后关闭了受影响的端点。 惊人的响应时间!

接受: 1小时 | 赏金: 7,500美元 | 优先级: P0


当我第一次开始寻找这种信息泄露时,我认为这将是Google臭虫的圣杯 ,因为它披露了有关其他每个bug的信息(例如,HackerOne为类似的东西支付至少10,000美元 )。

但是在找到它之后,我很快意识到这种影响会被最小化,因为所有危险的漏洞无论如何都会在一小时内抵消。

我对额外的现金感到非常满意,并期待在其他Google产品中发现错误。

https://medium.freecodecamp.org/messing-with-the-google-buganizer-system-for-15-600-in-bounties-58f86cc9f9a5

【译】How I hacked Google’s bug tracking system itself for $15,600 in bounties相关推荐

  1. 《A Single Camera Eye-Gaze Tracking System with Free Head Motion》论文阅读

    题目:A Single Camera Eye-Gaze Tracking System with Free Head Motion 作者:Craig Hennessey, Borna Noureddi ...

  2. 《Non-contact Eye Gaze Tracking System by Mapping of Corneal Reflections》论文阅读

    题目:Non-contact Eye Gaze Tracking System by Mapping of Corneal Reflections 作者:Dong Hyun Yoo, Jae Heon ...

  3. oracle oats 工具讲解,Oracle 21c 新特性:Object Activity Tracking System 对象活动跟踪系统...

    Oracle 21c 新特性:Object Activity Tracking System 对象活动跟踪系统 在 Oracle Database 21c 中,OATS 新特性引入进来,OATS 是 ...

  4. 《A non-contact eye-gaze tracking system for human computer interaction》论文阅读

    题目:A non-contact eye-gaze tracking system for human computer interaction 作者:YING QI, ZHI-LIANG WANG, ...

  5. 给Chrome“捉虫”16000个,Google开源bug自检工具

    整理 | 一一 出品 | AI科技大本营(ID:rgznai100) 在内部开发和使用八年之久,近日,Google 宣布开源 bug 自动化检测工具 ClusterFuzz. ClusterFuzz ...

  6. 【译】SafetyNet:Google对Android的篡改检测 (SafetyNet: Google's tamper detection - Part 1 )

    什么是SafetyNet Android Pay应用程序已于几天前发布.一些使用植根设备的人发现它拒绝工作.这是因为它使用了新的Google Play服务功能:SafetyNet证明. SafetyN ...

  7. 【译】How to create your own Question-Answering system easily with python

    机器理解(MC)的历史起源于人工智能(AI)中第一个概念的诞生.辉煌的Allan Turing在他着名的文章" 计算机器和智能 "中提出了什么,现在称为图灵测试作为智力的标准.大约 ...

  8. 【BUG】System.OverflowException:“算术运算导致溢出。“

    文章目录 System.OverflowException:"算术运算导致溢出." 一 问题描述 二 原因及解决办法 System.OverflowException:" ...

  9. Google怎么用linux

    今年的linux内核开发大会上,google的开发人员也上台做了名为"how google use linux"的演讲.我斗胆翻译注解一番――括号内为注解,欢迎读者斧正. 原文链接 ...

最新文章

  1. 【PL/SQL】--导出oracle单表数据--drp204
  2. 语言与智能:维特根斯坦框架、人工智能以及共情的出现
  3. Doxygen生成注释文档
  4. spring使用@Async注解异步处理
  5. win10动态壁纸怎么设置_想把我的女朋友设置为动态壁纸:看过来,教你啊
  6. 【python】 字符串转小写(含汉字等时仍work)
  7. P5355-[Ynoi2017]由乃的玉米田【莫队,bitset,根号分治】
  8. python一加到二十等于多少_Python 3.1新变化之性能改善篇(转载)
  9. 深入理解Unity刚体(Rigidbody)、碰撞器(Collider)、触发器(Trigger)
  10. MySQL(4)-----DML数据库操作(下)
  11. 职场小白手收藏篇:职场应聘的面试技巧
  12. 用C语言解一元二次方程
  13. 条信息流oCPC调研报告
  14. MT6737芯片技术资料集锦下载
  15. 2023年1月综合预订类APP用户洞察——旅游市场复苏明显,三年需求春节集中释放
  16. FTP上传下载失败或文件为空
  17. BERT四大下游任务
  18. javax和java的区别
  19. TwinCAT3串口通讯EL6021模块使用-和串口调试助手自由协议通讯
  20. 微软专家话人生:成长中不可或缺的是信仰

热门文章

  1. Can't connect to MySQL server on 'localhost' 10061
  2. 网页禁用鼠标右键和复制功能兼容方式
  3. Hdu 1283 钱币兑换问题
  4. linux yum及yum仓库
  5. shell中条件判断if中的-z到-d的意思
  6. 如何用Linux的命令正确识别cpu的个数和核数
  7. ubuntu中mysql操作_uBuntu下安装MySql,及mySql操作!
  8. 博客积分规则 博客等级
  9. 东华之旅vs第一次坐飞机经历2018-06-10
  10. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170407