比利时安全专家Arne Swinnen向Facebook报告了一个重要漏洞,后者在不到一天的时间内修复并发出5000美元的奖励。
Swinnen在上周日的一篇博文中指出,这个问题仅影响因安全问题而被锁定的Instagram账户。被锁定的原因可能是长时间不使用、垃圾邮件的关系或者密码输入连续出错。他是在激活自己的一个老旧Instagram账户过程中发现的。
仅有被锁定Instagram账户被暴露
在验证页面,Swinnen发现两个安全问题。第一个问题是Facebook会在网页上打印出敏感的Instagram用户详情,还有允许攻击者重置与账户关联的邮件并随后重置账户密码的操作。第二个问题是安全行业中所谓的不安全的直接对象引用漏洞。Facebook会在页面的URL中打印出每个用户的ID信息,允许用户编辑。这样用户就能在无需任何验证的情况下访问相似页面。由于Instagram使用的是增量ID,攻击者只需要在数字后面加1即可。
Swinnen测试了100万个账户。其中仅有一些账户是因安全原因锁定的。根据Facebook锁定账户的原因和类型不同,每个账户都有不同类型的验证程序。
攻击者可利用自己的邮件地址控制账户
一些验证步骤是通过CAPTCHA(为垃圾邮件设置)(1099个账户)、或通过邮件或短信(异常活动)(1960个账户)来实现。这些类型的验证并不会泄露用户账户。第一个问题是,当Facebook检测到跟账户关联的邮件地址不可访问时或出现错误时,会要求用户更新邮件。攻击者可测试锁定账户的随机资料,当进入该页面时,他们会输入自己的邮件地址重置密码,并且成为该账户的所有者。Swinnen发现了1690个账户中存在这个问题(0.17%)。
用户手机验证漏洞
而第二个问题影响更大,当Facebook突然让一系列账户通过手机号码验证身份时,就要求用户更新自己的手机号码,同时要求预先在电话号码字段中填上最后一个号码。这种设计权限会泄露用户的详情而且允许攻击者编辑字段内容并输入自己的电话号码。跟密码场景一样,攻击者可通过手机来重置密码并且控制账户。
Swinnen从中发现了38808个此类账户,占据所测试账户总数的3.88%。窃取Instagram账户是利益丰厚的业务。Facebook在3月14日修复了这个问题。

