隐蔽重定向(英语:Covert Redirect),是关于单点登录(Single sign-on)的安全漏洞。因其对OAuth和OpenID的影响而为人所知。由新加坡南洋理工大学物理和数学科学学院博士生王晶(Wang Jing)发现并命名。
隐蔽重定向的一个重要应用是进行钓鱼式攻击,别的网站钓鱼是用假的网站,而隐蔽重定向却是用真的知名网站进行钓鱼。这是一种完美钓鱼方式。
2014年5月,继OpenSSL漏洞后,开源安全软件再曝安全漏洞。新加坡南洋理工大学研究人员王晶发现,OAuth2.0和OpenID授权接口的网站存隐蔽重定向漏洞、英文名为“Covert Redirect”。该漏洞OSVDB编号106567。SCIP编号vuldb.13185。中国国家信息安全漏洞共享平台编号CNVD-2014-02785。Bugtraq ID是67196。
该漏洞首先由CNET报道,并由此引起广泛关注和大量讨论。雅虎,福克斯新闻,黑客新闻,凤凰网,人民网等媒体认为该漏洞影响很大。攻击者创建一个使用真实站点地址的弹出式登录窗口——而不是使用一个假的域名——以引诱上网者输入他们的个人信息。而Mashable等则认为该漏洞是个旧漏洞。
最后的主流结论是,隐蔽重定向是一个值得注意的漏洞。该漏洞达不到HeartBleed的级别,但仍然是对授权应用权限的一个提醒。
OAuth和OpenID也分别对此漏洞进行了说明和建议。
攻击者创建一个使用真实站点地址的弹出式登录窗口——而不是使用一个假的域名——以引诱上网者输入他们的个人信息。
黑客可利用漏洞给钓鱼网站(phishing)“变装”,用知名大型网站链接引诱用户登录钓鱼网站,一旦用户访问钓鱼网站并登录授权,黑客即可读取其在网站上存储的私密信息。
腾讯QQ、新浪微博、阿里巴巴淘宝、支付宝、搜狐网、网易、人人网、开心网、亚马逊、微软Live、WordPress、eBay、PayPal、Facebook、Google、Yahoo、LinkedIn、VK.com、Mail.Ru、Odnoklassniki.ru、GitHub等大量知名网站受影响。
鉴于OAuth和OpenID被广泛用于各大公司——如微软、Facebook、Google、以及LinkedIn——Wang表示他已经向这些公司已经了汇报。Wang声称,微软已经给出了答复,调查并证实该问题出在第三方系统,而不是该公司的自有站点。Facebook也表示,“短期内仍无法完成完成这两个问题的修复工作,只得迫使每个应用程序平台采用白名单”。至于Google,该公司正在追踪OpenID的问题;而LinkedIn则声称它已经在在博客中说明这一问题。
其实漏洞不是出现在OAuth这个协议本身,这个协议本身是没有问题的,之所以存在问题是因为各个厂商没有严格引用官方文档,只是实现了简版。问题的原因在于OAuth的提供方提供OAuth授权过程中没有对回调的URL进行校验,从而导致可以被赋值为非原定的回调URL,就可以导致跳转、XSS等问题,甚至在对回调URL进行了校验的情况可以被绕过。
通过对中国部分提供OAuth 2.0的网站进行测试和调查,发现均不同程度的存在以上的问题。
从测试结果可以看出,除了百度绕过未进行测试外,其他都存在问题,而且好几个甚至对回调URL都没有进行校验,而对回调URL进行校验了的又可以被绕过。
对于普通用户来说,其实没有什么好恐慌的,这次问题的利用的前提是对构造URL的访问,所以主要是针对URL提高警惕和识别,需要注意以下几点:
OAuth是一个被广泛应用的开放登陆协议,允许用户让第三方应用访问该用户在某一网站上存储的私密的信息(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。这次曝出的漏洞,可将OAuth 2.0的使用方(第三方网站)的回跳域名劫持到恶意网站去,黑客利用XSS漏洞攻击就能随意操作被授权的账号,读取用户的隐私信息。像腾讯、新浪微博等社交网站一般对登录回调地址没有任何限制,极易遭黑客利用。