我是如何生成任意Facebook用户访问令牌的

iso60001  2171天前

黑客利用此漏洞可以对任意Facebook用户生成访问令牌。

当我测试一些在Rights Manger面板中Facebook端点时,我意外地发现了这个漏洞。(Rights Manger是一个针对视频发布者和编辑者的产品)

当我向存在漏洞的Facebook端点发送带有参数page_id的POST请求时,端点会返回一个页面访问令牌(access_token)。

这里存在的问题是,Facebook端点并不检查参数page_id的值是否实际上是一个“page”的id,而不是像“user”这样的另一个对象的id。这样我就可以发出请求,并将page_id值更改为任何Facebook用户id,而当这个请求的响应返回时,我就获得了特定用户的访问令牌。

22.jpg

影响

由于访问令牌的状态(所生成的access_token的范围是针对页面而不是用户),我无法读取和修改其他用户的某些数据(如查看消息),我也无法完全接管帐户。但是,我还是能够阅读所有的私人信息,如电子邮件、信用卡、电话号码、管理页面及其它们的访问令牌、管理商业/广告帐户和私人帖子、照片和视频……

修复

Facebook安全团队通过修改它们的API接口来拒绝以这种方式生成的令牌(用户对象而不是页面对象),从而解决了这个漏洞。此外,在差不多六个月之后,他们通过修改这个端点和其他一些端点进行了二次修复,可以先通过检查所提供的id是否与用户对象相匹配来阻止生成非法令牌。

2018年2月3日——报告发送

2018年2月6日——Facebook进一步调查

2018年2月6日——Facebook要求详细说明

2018年2月6日——发送详细说明

2018年2月8日——Facebook修复漏洞

2018年2月23日——Facebook发放奖金

原文链接:https://securelist.com/darkvishnya/89169/

最新评论

昵称
邮箱
提交评论