今年三月我参与了谷歌软件工程师的面试,没想到完全出于意外,我却发现了谷歌(Google)某个应用服务的漏洞,其也成为了我的第一个赏金漏洞。一切请听我细细道来。
入围Google最终面试
Hmmm….,我认为这种方式稍显奇怪,其本身应该不会构成任何安全风险。还有,每天都有很多聪明人参加Google的面试,如果真会有安全问题,估计也不是我能想到的。
错误邮件
哦….,原来Google还一直在用Concur这套差旅费用系统,某人忘记了密码,并认为登录ID是他Concur密码重置请求表中的电子邮件地址,因此, Concur系统向他解释说不是这样的,而该Concur系统回复邮件却误发到了我的邮箱中来,我想这种混淆肯定会发生,也不能完全责怪那个人。
而就在上周,我又收到了一封来自Google的Concur系统邮件,有点烦人,所以我又重新对之前Google在3月份发给我的Concur邮件进行了一番审阅:
Google使用Concur服务的默认密码漏洞
在查阅了我之前收到的电子邮件后,我怀疑Google招聘人员使用了“某个固定前缀(fixed_prefix)+数字”的默认密码方式来创建帐户。默认密码本质上算是无用的,在应聘者未更改默认密码的前提下,登录应聘者Concur页面所需的唯一信息,就是他们的帐号。就连我自己在预订面试航班的前一天,也没修改过其默认密码。我只偶尔记得帐号信息,然而大多数时候,好多人会忘记Google分配给自己的密码,而且会把其密码重置方式和注册登录Concur的普通账户方式混淆。对此,我想这种情况下,Google的这种Concur系统应用方式存在默认密码漏洞,可被暴力攻击(虽然利用难度较大)。
暴力破解测试
报告漏洞
披露:在上述暴力破解漏洞测试中,为了证明漏洞存在性,我仅获取了一位应聘者的Concur记录,而且最终也销毁删除了这些数据。
在本文发布后,我与Concur安全团队进行了一次交流,得知Concur在Bugcrowd有一个官方的漏洞赏金项目。
漏洞报送过程
09/29/2017: 通过我的邮箱进行首次Concur登录密码重置请求
11/25/2017: 通过我的邮箱进行第二次Concur登录密码重置请求
11/27/2017 at 5 PM: 发送漏洞报告
11/27/2017 at 6 PM: Google接收漏洞
11/28/2017: Google回复声称“这应该好像是Concur的错误吧“
11/28/2017: 向Google提供更多漏洞验证性证据
11/28/2017: Google承认了漏洞
11/28/2017: 我通过Twitter与Concur取得联系并进行了沟通
12/06/2017: 针对我要公开该漏洞的情况,Google回复称需要对我的发文进行一些审阅
12/20/2017: Concur公司安全团队联系我并声称会在系统端实施安全改进