信息来源:Freebuf
微软近期在其漏洞赏金计划中向一名安全人员颁发了高达50000美元的奖金。如此“高贵”的漏洞不免让人感到好奇。
据了解,该漏洞可以让黑客在用户不知情的情况下劫持用户账户。也就是说,当你躺在床上舒舒服服睡个好觉的时候,黑客可能已经偷偷潜入了你的账户,并且通过账户掌握了你的个人信息,用它进行金融交易、创建新帐户、也可能向你的亲人好友们进行诈骗,甚至进行更严重的违法活动。
虽然会造成严重影响,但该漏洞的利用原理却并不复杂。发现它的安全人员指出,该漏洞可以在用户重置密码之前,强行猜测出向用户的电子邮箱或者手机号码发送的七位数密码,从而对用户账户进行访问。
然而对发送验证代码的HTTP POST请求进行分析后发现,密码在发送前是加密的,这意味着如果要强行破解密码,必须先破解加密。
截图显示,输入的1234567代码在请求中根本不存在。密码被加密之后才发送验证。这样做的目的是为了防止自动破解工具利用他们的系统。所以,像Burp Intruder这样的自动测试工具就无法使用,因为他们无法破解加密。
然而,虽然有旨在防止攻击者自动重复提交所有1000万个代码组合的加密障碍和限速检查,但该安全人员表示,他最终破解了该加密功能。
但是破解了加密功能,并不意味着攻击一定能成功。事实上,测试显示,在发送的1000个代码中,只有122个代码能够通过,其他代码以错误代码1211被阻止。
对此安全人员表示,如果所有发送的请求没有同时到达服务器,自带的机制就会将IP地址列入黑名单。并且,请求之间的几毫秒延迟就能让服务器检测到攻击并阻止它。
从攻击范围来看,虽然这种攻击只在账户没有被双因素认证保护的情况下有效,但它仍然可以扩展到击败两层保护并修改目标账户的密码。然而,在实际场景中,该攻击的操作难度并不简单,攻击者必须同时发送安全码,大约要进行1100万次请求尝试,才能更改任何微软账户(包括那些启用2FA的账户)的密码。这样一来,就需要大量的计算资源以及1000s的IP地址才能成功完成攻击。
因此,这种攻击的可行性并不高,普通的攻击者很难满足攻击条件。
在安全人员向微软报告了这个漏洞之后,微软很快承认了这个问题,并在2020年11月进行了处理。