您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何解析Facebook的Gmail驗(yàn)證機(jī)制存在的CSRF漏洞,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
下面分享的是一個(gè)Facebook CSRF漏洞,用Gmail或G-Suite賬戶來驗(yàn)證新創(chuàng)建Facebook賬戶時(shí)存在的CSRF令牌驗(yàn)證機(jī)制漏洞,攻擊者利用該漏洞,可在驗(yàn)證新創(chuàng)建Facebook賬戶時(shí),以最小用戶交互方式用受害者郵箱驗(yàn)證其注冊(cè)的Facebook賬戶,實(shí)現(xiàn)間接CSRF攻擊。漏洞最終獲得Facebook官方$3000美金獎(jiǎng)勵(lì)。
當(dāng)用戶用Gmail或G-Suite賬號(hào)來創(chuàng)建一個(gè)新的Facebook賬戶時(shí),存在以下兩種身份驗(yàn)證機(jī)制:
從Gmail中接收5位數(shù)的驗(yàn)證碼,然后在Facebook網(wǎng)頁中輸入以確認(rèn)
從Gmail或G-Suite賬號(hào)的第三方進(jìn)行OAuth授權(quán)跳轉(zhuǎn)登錄
要繞過第一種方法估計(jì)很難了,F(xiàn)acebook后端部署的Checkpoint安防設(shè)備和強(qiáng)大的速率限制條件,會(huì)毫不客氣地阻斷任何暴力破解和可疑行為。所以,我們來觀察一下第二種方法,經(jīng)過一番測(cè)試,我在其中發(fā)現(xiàn)了一個(gè)CSRF漏洞,原因在于,在OAuth授權(quán)跳轉(zhuǎn)登錄過程中缺少必要的CSRF令牌驗(yàn)證機(jī)制。OAuth Login鏈接如下:
https://accounts.google.com/o/oauth3/auth?client_id=15057814354-80cg059cn49j6kmhhkjam4b00on1gb2n.apps.googleusercontent.com&state=ARf8Zzq50032sck96TSFssFhWVvMUWO7KEJlq3n3_7Yp73WcWvlpyFn1dpdoUGv5QOLAn2ffrRZ_L_3ZfAncV_I0Ihog80LabpToEfHUIgfzBK720-pGRNbXGeYkETOwjeCfbsl70shdjuLnp3jC4dIsn-xPTwoggineLFh44F61bbYGsg&response_type=code&redirect_uri=https%3A%2F%2Fwww.facebook.com%2Foauth3%2Fredirect%2F&scope=openid+email&login_hint=victim_email@gmail.com
請(qǐng)注意,其中的state參數(shù)為一個(gè)CSRF令牌,該令牌用于在一些跨站點(diǎn)的請(qǐng)求響應(yīng)中,去驗(yàn)證那些經(jīng)身份驗(yàn)證過的用戶,以此來防止攻擊者蓄意的CSRF攻擊。
通常來說,如果在上述OAuth Login過程中,該state參數(shù)由客戶端的 Firefox 瀏覽器生成,那么,該參數(shù)令牌也僅限于在該Firefox瀏覽器中驗(yàn)證有效。但是,這里的問題是,該OAuth Login機(jī)制還缺乏必要的驗(yàn)證措施,也就是,這里的這個(gè)state參數(shù)(CSRF token)可用在任何其他客戶端瀏覽器中實(shí)現(xiàn)有效驗(yàn)證。所以,對(duì)攻擊者來說,可以簡(jiǎn)單地把上述URL鏈接進(jìn)行嵌入構(gòu)造到一個(gè)網(wǎng)頁中,只要受害者點(diǎn)擊到該網(wǎng)頁,攻擊者就能以受害者身份(如注冊(cè)郵箱victim_email@gmail.com)完成Facebook賬戶的身份驗(yàn)證,實(shí)現(xiàn)間接的CSRF攻擊。
但是,這里還有一個(gè)問題,那就是受害者在點(diǎn)擊攻擊者構(gòu)造的頁面之前,攻擊者Facebook賬戶需要在受害者瀏覽器中實(shí)現(xiàn)登錄,而這里,剛好可用Facebook的一鍵式登錄(Log In With One Click)來完成這個(gè)動(dòng)作。把以下Facebook的一鍵式登錄鏈接嵌入到惡意網(wǎng)頁的IFrame中,當(dāng)受害者點(diǎn)擊網(wǎng)頁后,攻擊者Facebook賬戶就可在受害者瀏覽器中完成登錄加載。
https://www.facebook.com/recover/password/?u=100008421723582&n=232323&ars=one_click_login&fl=one_click_login&spc=1&ocl=1&sih=0
之后,當(dāng)OAuth Login按鈕被受害者點(diǎn)擊后,受害者郵箱被攻擊者用來確認(rèn)登錄了Facebook,之后,再用以下鏈接來退出攻擊者的Facebook賬戶:
https://m.facebook.com/logout.php?h=17AfealsadvYomDS
結(jié)合以上方法構(gòu)造出一個(gè)惡意頁面,攻擊者就能用受害者郵箱(如以下視頻中的Gmail)完成新創(chuàng)建Facebook賬戶的驗(yàn)證了。
總體來說,該漏洞危害確實(shí)有限,原因在于Facebook的第三方OAuth Login過程中缺乏對(duì)CSRF token的有效驗(yàn)證,導(dǎo)致攻擊者可以利用不變的CSRF token來做文章。但隨著Web應(yīng)用的不斷發(fā)展,各種場(chǎng)景下的第三方OAuth機(jī)制越來越多,其存在的問題和漏洞將會(huì)非常值得注意。
關(guān)于如何解析Facebook的Gmail驗(yàn)證機(jī)制存在的CSRF漏洞就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。