您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何解析Facebook的Gmail驗證機制存在的CSRF漏洞,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
下面分享的是一個Facebook CSRF漏洞,用Gmail或G-Suite賬戶來驗證新創建Facebook賬戶時存在的CSRF令牌驗證機制漏洞,攻擊者利用該漏洞,可在驗證新創建Facebook賬戶時,以最小用戶交互方式用受害者郵箱驗證其注冊的Facebook賬戶,實現間接CSRF攻擊。漏洞最終獲得Facebook官方$3000美金獎勵。
當用戶用Gmail或G-Suite賬號來創建一個新的Facebook賬戶時,存在以下兩種身份驗證機制:
從Gmail中接收5位數的驗證碼,然后在Facebook網頁中輸入以確認
從Gmail或G-Suite賬號的第三方進行OAuth授權跳轉登錄
要繞過第一種方法估計很難了,Facebook后端部署的Checkpoint安防設備和強大的速率限制條件,會毫不客氣地阻斷任何暴力破解和可疑行為。所以,我們來觀察一下第二種方法,經過一番測試,我在其中發現了一個CSRF漏洞,原因在于,在OAuth授權跳轉登錄過程中缺少必要的CSRF令牌驗證機制。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
請注意,其中的state參數為一個CSRF令牌,該令牌用于在一些跨站點的請求響應中,去驗證那些經身份驗證過的用戶,以此來防止攻擊者蓄意的CSRF攻擊。
通常來說,如果在上述OAuth Login過程中,該state參數由客戶端的 Firefox 瀏覽器生成,那么,該參數令牌也僅限于在該Firefox瀏覽器中驗證有效。但是,這里的問題是,該OAuth Login機制還缺乏必要的驗證措施,也就是,這里的這個state參數(CSRF token)可用在任何其他客戶端瀏覽器中實現有效驗證。所以,對攻擊者來說,可以簡單地把上述URL鏈接進行嵌入構造到一個網頁中,只要受害者點擊到該網頁,攻擊者就能以受害者身份(如注冊郵箱victim_email@gmail.com)完成Facebook賬戶的身份驗證,實現間接的CSRF攻擊。
但是,這里還有一個問題,那就是受害者在點擊攻擊者構造的頁面之前,攻擊者Facebook賬戶需要在受害者瀏覽器中實現登錄,而這里,剛好可用Facebook的一鍵式登錄(Log In With One Click)來完成這個動作。把以下Facebook的一鍵式登錄鏈接嵌入到惡意網頁的IFrame中,當受害者點擊網頁后,攻擊者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
之后,當OAuth Login按鈕被受害者點擊后,受害者郵箱被攻擊者用來確認登錄了Facebook,之后,再用以下鏈接來退出攻擊者的Facebook賬戶:
https://m.facebook.com/logout.php?h=17AfealsadvYomDS
結合以上方法構造出一個惡意頁面,攻擊者就能用受害者郵箱(如以下視頻中的Gmail)完成新創建Facebook賬戶的驗證了。
總體來說,該漏洞危害確實有限,原因在于Facebook的第三方OAuth Login過程中缺乏對CSRF token的有效驗證,導致攻擊者可以利用不變的CSRF token來做文章。但隨著Web應用的不斷發展,各種場景下的第三方OAuth機制越來越多,其存在的問題和漏洞將會非常值得注意。
關于如何解析Facebook的Gmail驗證機制存在的CSRF漏洞就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。