本文原链接:
原作者:Anand Prakash - 印度AppSecure公司创始人
摘要
这篇文章的原文在Facebook基于负责任公开政策的允许下发表。他们(Facebook)已经修复了本文中提到的漏洞。
我发现了Facebook一个简单的安全缺陷,这个缺陷能使我可以简单地获取到其他用户的账号信息,而不需要与他们有任何交互。
这个缺陷令我可以修改其他用户的密码,由此我可以查看他们的通信记录,他们登记在付费部分的信用卡、借记卡信息、个人相片,以及其他的私人信息。
Facebook及时承认了这个缺陷的存在,并且给了我15000美元作为发现了严重漏洞的奖励。
我是如何发现这个漏洞的
当一个用户忘记了自己登陆Facebook的密码,他们可以通过页面 ;lwv=110, 选择输入自己的手机号码和电子邮件地址重置。
然后Facebook会发送6位数字号码到这个手机或者电子邮件,用户可以凭该号码凭据重置一个新的密码。
我尝试使用强力枚举方法输入任意6位数字,不过在10-12次失败尝试后被Facebook屏蔽了。
然后我转到be和mbasic.be尝试同样的方法,有趣的是,这两个地方并没有尝试次数限制。
我用我自己的账号做测试,并成功设置了一个新的密码(Facebook的政策不允许伤害到其他用户的账号)。
验证过程视频
如视频所示,我成功使用强力枚举方法修改了其他用户的密码。
缺陷报文
POST /recover/as/code/ HTTP
Host: be
lsd=AVoywo13&n=XXXXX
使用蛮力枚举,在第N次之后成功为其他Facebook用于设置了新的密码。
事件公布时间线
2016年2月22日,向Facebook发送缺陷发现报告;
2016年2月23日,通过我自己的测试,发现问题已经修复。
2016年3月2日,Facebook奖励我15000美元。
译者注:延伸阅读
1、文中使用到的暴力枚举工具:
2、关于Facebook的政策
3、AppSecure是一家专注于计算机安全的印度创业公司