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