今年三月我參與了谷歌軟件工程師的面試,沒想到完全出于意外,我卻發現了谷歌(Google)某個應用服務的漏洞,其也成為了我的第一個賞金漏洞。一切請聽我細細道來。
入圍Google最終面試
Google在決定聘用某人之前,必須有兩三關面試過程,最后一關是,他們會付費讓入圍應聘者到公司現場面試,我很榮幸,獲得了最終現場面試資格。前期電話溝通中,招聘人員簡單地向我提到,他們正在使用一種名為Concur的第三方差補費用系統來讓應聘者進行機票預訂,而我在喜愛的播客節目Freakonomics中,也能經常聽到一些Concur的廣告。為了應用該系統進行航班預訂,需使用Google提供的用戶名和密碼,同時須申報如護照號碼、性別、地址、緊急聯系人等個人信息。
無關的域名gcandidate.com
Google發給我登錄到Concur的用戶名是這樣形式的:[numbers]@gcandidate.com,比較奇怪。Gcandidate.com –這是什么? 網站瀏覽后我發現它就是個空白頁,我估計帳戶名中的@ gcandidate.com完全是個用來裝飾的幌子吧,它沒有什么實際意義,只是其帳戶信息與我的電子郵件地址相關聯而已,另外,域名gcandidate.com還是個未注冊域名。
Hmmm….,我認為這種方式稍顯奇怪,其本身應該不會構成任何安全風險。還有,每天都有很多聰明人參加Google的面試,如果真會有安全問題,估計也不是我能想到的。
可惜的是,在最終面試過程中我卻失利了。接下來在整個無聊的8月我無所事事,突發奇想的想來搗鼓域名gcandidate.com玩玩,我想要是沒人注冊它,那就我來注冊吧,或許當有人查看它時,我會在其中設置一個惡作劇網頁,但注冊完成后我一直沒時間建站。
錯誤郵件
但兩個月前的9月底,我卻突然收到了一封發給其他人([numbers]@gcandidate.com)的錯誤郵件:
哦….,原來Google還一直在用Concur這套差旅費用系統,某人忘記了密碼,并認為登錄ID是他Concur密碼重置請求表中的電子郵件地址,因此, Concur系統向他解釋說不是這樣的,而該Concur系統回復郵件卻誤發到了我的郵箱中來,我想這種混淆肯定會發生,也不能完全責怪那個人。
而就在上周,我又收到了一封來自Google的Concur系統郵件,有點煩人,所以我又重新對之前Google在3月份發給我的Concur郵件進行了一番審閱:
Google使用Concur服務的默認密碼漏洞
在查閱了我之前收到的電子郵件后,我懷疑Google招聘人員使用了“某個固定前綴(fixed_prefix)+數字”的默認密碼方式來創建帳戶。默認密碼本質上算是無用的,在應聘者未更改默認密碼的前提下,登錄應聘者Concur頁面所需的唯一信息,就是他們的帳號。就連我自己在預訂面試航班的前一天,也沒修改過其默認密碼。我只偶爾記得帳號信息,然而大多數時候,好多人會忘記Google分配給自己的密碼,而且會把其密碼重置方式和注冊登錄Concur的普通賬戶方式混淆。對此,我想這種情況下,Google的這種Concur系統應用方式存在默認密碼漏洞,可被暴力攻擊(雖然利用難度較大)。
暴力破解測試
進一步分析,我發現Concur系統未部署驗證碼機制來阻止一些暴力猜解登錄,而且也不能監控到gcandidate.com域名發送來的郵件。只要知道確定的默認密碼后,就可以使用VB語言編寫一個GUI界面,用隨機固定長度的ID數字組合賬戶來嘗試進行頁面暴力破解,由于我想Google分配的ID賬戶應該是按順序來的,我也就沒進行暴力登錄了,而且這種測試可能會對Concur系統官網本身造成影響。當時我也不知道Concur系統的道德安全測試策略,因此最終我還是放棄了暴力破解的測試,只是去試圖聯系了Concur安全團隊,提醒他們需要添加驗證碼機制。從技術上說,這本身不是一個安全問題,但對于使用第三方系統Concur的Google來說,這會對其應用服務產生影響。
報告漏洞
最終,在向Google報告了這個漏洞之后,Google的安全響應速度非常及時,他們馬上和Concur方面合作修復了這個漏洞。現在,Google方面已經把域名gcandidate.com注冊在其名下,所以我的惡作劇幻想也泡湯了,但我有了這個人生中的第一個賞金漏洞。
披露:在上述暴力破解漏洞測試中,為了證明漏洞存在性,我僅獲取了一位應聘者的Concur記錄,而且最終也銷毀刪除了這些數據。
在本文發布后,我與Concur安全團隊進行了一次交流,得知Concur在Bugcrowd有一個官方的漏洞賞金項目。
漏洞報送過程
07/31/2017: 注冊了gcandidate.com域名
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/05/2017: Google修復了漏洞,向我獎勵了$500美金,而且以友好的方式向我索求gcandidate.com域名管理權
12/06/2017: 針對我要公開該漏洞的情況,Google回復稱需要對我的發文進行一些審閱
12/06/2017: 我把域名gcandidate.com轉給Google注冊管理
12/20/2017: Concur公司安全團隊聯系我并聲稱會在系統端實施安全改進
*參考來源:amproject,freebuf小編clouds編譯,轉載請注明來自FreeBuf.COM