您好,欢迎访问一九零五行业门户网

利用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授权跳转登录。
要绕过第一种方法估计很难了,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机制越来越多,其存在的问题和漏洞将会非常值得注意。
漏洞上报进程
2019.5.10 : 漏洞初报2019.5.17 : facebook跟进调查2019.5.31 : facebook修复2019.6.19 : facebook奖励我$3,000
相关文章教程推荐:服务器安全教程
以上就是利用csrf令牌验证机制漏洞验证受害者账户的详细内容。
其它类似信息

推荐信息