搜尋
首頁運維安全利用CSRF令牌驗證機制漏洞驗證受害者帳戶

利用CSRF令牌驗證機制漏洞驗證受害者帳戶

Dec 28, 2019 pm 05:57 PM
csrf漏洞帳戶驗證

利用CSRF令牌驗證機制漏洞驗證受害者帳戶

本文分享的是一个Facebook CSRF漏洞,用Gmail或G-Suite账户来验证新创建Facebook账户时存在的CSRF令牌验证机制漏洞,攻击者利用该漏洞,可在验证新创建Facebook账户时,以最小用户交互方式用受害者邮箱验证其注册的Facebook账户,实现间接CSRF攻击。

OAuth登录机制对CSRF token验证不足

当用户用Gmail或G-Suite账号来创建一个新的Facebook账户时,存在以下两种身份验证机制:

1、从Gmail中接收5位数的验证码,然后在Facebook网页中输入以确认。

2、从Gmail或G-Suite账号的第三方进行OAuth授权跳转登录。

利用CSRF令牌驗證機制漏洞驗證受害者帳戶

要绕过第一种方法估计很难了,Facebook后端部署的Checkpoint安防设备和强大的速率限制条件,会毫不客气地阻断任何暴力破解和可疑行为。所以,我们来观察一下第二种方法,经过一番测试,我在其中发现了一个CSRF漏洞,原因在于,在OAuth授权跳转登录过程中缺少必要的CSRF令牌验证机制。

OAuth Login链接如下:

https://accounts.google.com/signin/oauth/identifier?client_id=15057814354-80cg059cn49j6kmhhkjam4b00on1gb2n.apps.googleusercontent.com&as=dOwxqXYIm0eQvYuxmp-ODA&destination=https%3A%2F%2Fwww.facebook.com&approval_state=!ChRLcHh5R0tQVzRXUWJSOFRIbG85ZRIfb19Dd1BsY0tpbGtYd0ktM2lWMU9TaWNIbzUyOTlCWQ%E2%88%99AJDr988AAAAAXghyvi5iRjgT2N1tdaquUxqUTQOYK4V4&oauthgdpr=1&xsrfsig=ChkAeAh8T8oLnsrNQd99XQIe69KD7-njhen9Eg5hcHByb3ZhbF9zdGF0ZRILZGVzdGluYXRpb24SBXNvYWN1Eg9vYXV0aHJpc2t5c2NvcGU&flowName=GeneralOAuthFlow

请注意,其中的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账户的验证了。

(需要视频嵌入)

https://www.youtube.com/watch?time_continue=8&v=SmRVIip_ySE

总结

总体来说,该漏洞危害确实有限,原因在于Facebook的第三方OAuth Login过程中缺乏对CSRF token的有效验证,导致攻击者可以利用不变的CSRF token来做文章。但随着Web应用的不断发展,各种场景下的第三方OAuth机制越来越多,其存在的问题和漏洞将会非常值得注意。

利用CSRF令牌驗證機制漏洞驗證受害者帳戶

漏洞上报进程

2019.5.10 :  漏洞初报
2019.5.17 :  Facebook跟进调查
2019.5.31 :  Facebook修复
2019.6.19 : Facebook奖励我$3,000

相关文章教程推荐:服务器安全教程

以上是利用CSRF令牌驗證機制漏洞驗證受害者帳戶的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:FreeBuf.COM。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具