说 OAuth2.0 漏洞/这个协议不安全的人,把头伸过来下,砖头准备好了。
Black Hat 的有关 Paper:
《OAuth User Profile Attack – How to Sign into One Billion Mobile App Accounts Effortlessly》
本质问题在于一些 App 在使用 OAuth2.0 协议时,(估计为了简单)使用的是 Implicit Flow 模式,然而并没严格按照协议的要求去实现,导致可能出现的劫持攻击。这并不是说 OAuth2.0 本身有漏洞或这个协议本身不安全,就好像两年多前的心脏出血漏洞,问题不在于 SSL 这个协议本身,而在于其某种实现方式(OpenSSL)有缺陷。一些媒体文的专业性一直是被诟病的,搞安全的人不要轻信媒体文。
结论与建议看 Paper 的倒数3、2页。
补充说明:
这种攻击的出现,只能说明相关开发文档没写清楚及 OAuth2.0 协议本身的实现上有缺陷(没做好应有的安全校验),这让我想起两年多前的 OAuth2.0 劫持缺陷,当时劫持的是目标网站(如知乎)的目标用户(如黄继新)的账号权限,配合了 CSRF,拿到黄继新的 Access Token,最终控制了他的账号。不过这个议题的问题不一样,可以认为是用你事先准备好的恶意账号去绑定目标 App 的目标用户的账号权限,既然是针对 App 的攻击,那辅助技巧就不大一样了(不像之前用 CSRF 等前端 Hack 技巧),所以我还在琢磨作者说的“Effortlessly”(不费力)是怎么个不费力呢?
欢迎讨论。