挖洞经验 | 用IP轮换+暴力猜解禁用未确认的Facebook账户

2019-12-16 140515人围观 ,发现 8 个不明物体 WEB安全漏洞

本文分享的是通过IP轮换结合暴力破解方法禁用Facebook新创建的未确认用户,此前在2014年Facebook曾针对该漏洞做过修复,但是由于修复策略不够完善,导致可以用IP轮换方法再次绕过这种防护,形成对任意新创建未确认Facebook用户的间接禁用攻击。

早前的账户创建确认漏洞

2014年Facebook曾针对该漏洞做过修复。当时的漏洞情况是这样的:如果你用个人邮箱注册一个Facebook账户,创建完成之后,Facebook会向你的邮箱发送一个5位数确认码邮件,但出于个人邮箱被恶意注册的安全原因考虑,Facebook还会在邮件末尾附加上一个“未曾注册过Facebook”的选项按钮,以便让那些个人邮箱被恶意注册的用户提交上报Facebook。如下:

提交之后,会产生以下链接:

https://www.facebook.com/confirmemail.php?e=victim@mail.com&c=5-DIGIT-CODE&report=1

移动端对应的是:

https://m.facebook.com/confirmemail.php?e=victim@mail.com&c=5-DIGIT-CODE&report=1&message=1

漏洞原因在于,其中的 c 参数,也就是Facebook发送过来的一个5位数确认码,可以被攻击者暴力破解猜测到,因此可导致攻击者用此种方式去禁用任何未及时确认的Facebook新注册账户。该漏洞已于2014年10月被Facebook修复。

现在存在的问题

通过测试分析,作者发现该路径下设置了访问频率限制(Rate limit),针对5位数确认码做暴力猜解时会被Facebook阻拦掉。如下:

我猜想Facebook之前的修复策略如果是基于IP的限制方法的话,我可以通过变换IP地址来进行暴力猜解啊。果然,当我变换新的IP地址再进行进行暴力猜解之后,Facebook完全不会实施阻拦。

为了更顺利的实施这种暴力猜解工作,需要对每次请求的IP地址都做出变化,也即IP轮换。为了综合利用IP轮换+暴力猜解,我谷歌了一些在线资料,并最终用Luminati+Burp搭建了一个测试环境(参考此处),完美绕过了Facebook后端限制,并有效地猜测出Facebook5位数确认码,实现对Facebook未确认账户的禁用。

漏洞影响

1、对于受害者用户来说,如果攻击者以此方式禁用了它的Facebook账户,那么由于其邮箱地址已经被Facebook列入黑名单,所以受害者在今后就无法用该邮箱注册Facebook账户了;

2、另外,如果攻击者知道受害者用户的确切注册邮箱,即使用户已经经过了Facebook确认,但一样能通过此种方式去举报受害者用户邮箱,形成账户滥用提交,后期可由Facebook对受害者的Facebook账户实现禁用,整个过程无需与用户进行任何交互。

漏洞上报及处理进程

2019.6.30 : 漏洞初报

2019.7.3 : Facebook深入确认

2019.8.23: Facebook完成修复

2019.8.23 : Facebook奖励了$1000

*参考来源:medium,clouds 编译整理,转载请注明来自 FreeBuf.COM

相关推荐

这些评论亮了

发表评论

已有 8 条评论

取消
Loading...
clouds

I am a robot , don't talk to me , code to me.

463 文章数 38 评论数 178 关注者

特别推荐

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php