本篇文章为大家展示了如何进行利用捐款功能形成重放攻击实现Facebook身份认证绕过的分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
利用Facebook捐款功能形成身份验证重放攻击,实现Facebook账户双因素认证(2FA)绕过的漏洞,原因在于Facebook在URL会话中加入的身份认证措施不够完善。
漏洞情况
起因源于我收到一个朋友的捐款活动消息,当我用手机版Facebook-App (IOS) 点击其页面中的“捐款(donate)”按钮后,它就自动跳转到了一个用***或Paypal支付的Web页面,该页面的后置路径为:{/donation/login/?nonce=xxxxx&uid=xxxxxx}。
其产生的URL链接为:
https://m.facebook.com/donation/login/?nonce=xxxxxx&uid={USER_ID}
但是,访问了该链接之后,我发现,即使我是Facebook退出状态,根本没有登录Facebook,当用Web浏览器访问上述的URL链接后,再次访问facebook.com我就能无需任何密码或其它身份认证手段,顺利地进入我的Facebook账户了!
作为验证,我把上述由我Facebook账户产生的URL捐款链接https://m.facebook.com/donation/login/?nonce=xxxxxx&uid={USER_ID} ,发送给了我的另外一个朋友,果不其然,在他电脑中,当他访问了该链接之后就能顺利地从facebook.com进入我的Facebook账户了!无需任何密码或2FA身份认证措施!而且,即使是更改了我Facebook账户的登录密码,他一样可以保持对我Facebook账户的登录状态。
漏洞复现
1、用Facebook App(IOS)从一些公益性组织页面中发现捐款页面,如:https://www.facebook.com/donate/xxx/xxx/
2、尝试发起一次捐款操作;
3、之后你会跳转到链接:“https://m.facebook.com/donation/login/?nonce=xxxxxx&uid=xxxxxx ”;
4、拷贝该条URL链接,把它用于其它你未登录过Facebook账户的设备中,用Web浏览器点击访问;
5、之后访问Facebook.com主页,你就会发现你已经自动登录到你的Facebook账户中了;
6、即使你把Facebook账户密码或相关会话进行了清理,但拥有该条URL链接的攻击者一样可以保持对你Facebook账户的登录状态,实现无需密码或其它2FA措施的认证绕过。
一般来说,我们会在一些需要身份认证的链接中加入时间戳timestamp,综合UID和一次应用参数nounce(number used once)来防止会话的重放攻击,但是Facebook在这里做的不够完善,因此导致了漏洞。该漏洞可以导致对身份认证机制的绕过,对Facebook账户形成持久登录状态。
上述内容就是如何进行利用捐款功能形成重放攻击实现Facebook身份认证绕过的分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/222485.html