笔者与近日从国内资深互联网应用安全提供商知道创宇安全研究团队处得悉,目前有一项严重危害用户隐私的漏洞刚刚被发现,包括旅游,招聘,娱乐,SNS交友,各大电商等各种网站均会被影响。经知道创宇安全研究团队测试,该安全漏洞在国内使用第三方登陆机制的网站中广泛存在,甚至知名的安全厂商360的网站平台以及360浏览器也存在这个问题。因为此类***不受同源策略等浏览器的安全限制,且不易被目标发现,所以危害严重。一旦被利用,用户的账号会被永久劫持,帐户信息会被任意浏览和改动。因为以前出现过关联类漏洞,疑似已经有***者开始利用这个漏洞进行实际***,请广大网民确认自身帐号信息是否已遭恶意劫持,及时采起措施保护自身帐号。jquery
经知道创宇安全研究团队确认,此漏洞是因为开发人员没有正确按照OAuth2受权机制的开发文档使用OAuth2,致使***者可以实施跨站请求伪造(CSRF)经过第三方网站来劫持用户在目标网站的帐户。
劫持流程:
虚拟测试: 安全
***者想经过本身的微博劫持并登陆受害人的帐户
如上图所示,正常的受权流程,用户点击受权后便再也不可控,剩下的工做由第三方应用和受权服务器(资源提供方)进行交互来完成。而***者能够阻止受权流程的正常进行,将中间的关键URL截取下来,诱骗用户访问,成功后能够将受害人的帐户绑定到***者的微博帐户上。此后,***者可使用微博的帐户自由登入受害人的主站帐户及浏览器帐户,任意查看和修改用户的隐私数据。 session
受到OAuth2 CSRF漏洞影响的部分网站列表(测试后):
ide
- 安全厂商:360网站 360浏览器 …
- it媒体:CSDN 中关村在线 …
- 团购:糯米团购 …
- 资讯:果壳 …
- 购物分享:蘑菇街 …
- 电商:聚美优品 …
- 视频:优酷 乐视网 CNTV …
- 招聘:大街 …
- 婚介:百合网 …
- 轻博客:点点 …
- SNS :开心网 …
知道创宇安全研究团队对于OAuth2 CSRF漏洞防护,建议以下:
1)对于开发人员:
1,受权过程当中传递state随机哈希值,并在服务端进行判断。
2,在绑定过程当中,应强制用户从新输入用户名密码确认绑定,不要直接读取当前用户session进行绑定。
3,限制带有Authorization code参数的请求仅能使用一次(避免重放***)
4,推荐使用Authorization Code方式进行受权,而不要使用Implicit Flow方式。这样access token会从受权服务器以响应体的形式返回而不会暴露在客户端。
2)对于普通用户:
按期查看重要网站的第三方账号绑定页面,检查是否有陌生的其余账号绑定到自身帐户,若是发现应当即取消绑定或受权。