前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Facebook账户接管漏洞

Facebook账户接管漏洞

原创
作者头像
小生观察室
修改2021-09-14 10:26:33
1.3K0
修改2021-09-14 10:26:33
举报
文章被收录于专栏:小生观察室

在漏洞挖掘方面,我更喜欢apps而不是web。

我下载了一堆不同版本的FB和Messenger APK,收集了所有的端点,对它们进行了分类并进行了检查。

在这个过程中,我遇到了一个有趣的端点,名为:

POST auth/flashcall_account_recovery

该端点需要3个参数

cuid, encrypted_phone_numbers & cli

CUID基本上意味着加密的电子邮件/电话,很容易找到。只需将受害者的电子邮件提供给

POST /recover_accounts

而作为回应,你会得到CUID。

第二,在浏览Facebook的密码恢复流程时。

我注意到,在负责发送FB OTP代码的端点中,有一个参数名为。

should_use_flash_call=false

如果它是false,你会在你的手机中收到一个OTP短信,如果设置为true,你会收到一个电话,而不是OTP来恢复账户。而在响应中,它包含了所需的加密的电话号码。

我无法弄清楚cli是什么。我想到的唯一东西是cli~命令行界面。由于想不出来,我就提供了null值来代替。当提出请求时。我收到了属于该用户的用户ID,我提供的CUID是其电子邮件值。这意味着攻击者可以提供任何人的电子邮件/电话作为CUID,而在回应中他完全可以确定该电子邮件是属于谁的。

所以我开始通过阅读smali文件来分析这个恢复流程是如何工作的。

端点的工作方式如下。

1.我输入我的电子邮件/电话。2.选择电话恢复选项。3.我收到一个电话。4.该电话号码将自动提供给端点

POST /flash_call_recovery

cuid=x&enc_phone=x&cli=+1xxxxx

实际上在cli参数中,我们应该提供在步骤3中接收电话的电话号码。现在,这一切都明白了为什么它被称为电话恢复。我猜cli的意思是类似于来电识别的东西。在一个理想的情况下,当提供了所有的有效值后,我们会收到以下的响应。

{“id”:”UserID”,”nonce”:”XXXX”,"skip_logout_pw_reset":""}

这个nonce值充当一个OTP代码,然后被提供给OTP验证端点。OTP验证端点负责验证nonce并设置新密码

POST /flash_call_recovery中,我最初测试将受害者的CUID提供给另一个用户的有效CLI是否会起作用,但它没有。我试着到处翻转每个参数,但没有一个管用。现在,我剩下的唯一选择就是暴力破解cli。考虑到FB对速率严格限制,因为它甚至对非认证端点实施了速率限制,我对此几乎不抱任何希望 但令我绝对吃惊的是,它在这个端点上没有实施速率限制。

因此,攻击的过程是这样的:用户在Flashcall恢复端点中提供受害者的CUIDenc_phone_number。对Cli进行暴力攻击 从响应中收到nonce在OTP验证端点中提供nonce,并为受害者的账户设置一个新的密码。以下视频演示了默认电话帐户恢复过程的工作原理。

视频内容

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
漏洞扫描服务
漏洞扫描服务(Vulnerability Scan Service,VSS) 是一款自动探测企业网络资产并识别其风险的产品。依托腾讯二十年累积的安全能力,漏洞扫描服务能够对企业的网络设备及应用服务的可用性、安全性与合规性等进行定期的安全扫描、持续性风险预警和漏洞检测,并且为企业提供专业的修复建议,降低企业安全风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档