URL 重定向及跳转漏洞

前言

url跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。

具体场景

现在WEB登录很多都接入了QQ,百度,新浪等第三方登录授权功能,以QQ第三方登录授权为例说明,在我们调用QQ授权服务器进行授权时,会在参数中传入个redirect_url地址,告知QQ授权服务器,那边授权成功后,跳转到这个地址上,然后应用进行网站登录操作。但是在繁杂的网络环境下,如果redirect_url在网络传输中被篡改成一个钓鱼网站的地址了,那么就会导致用户的授权信息被非法获取等危害。当然,QQ第三方登录,肯定也有自己的应对策略,就是接入QQ第三方登录的应用,会在开发者平台,配置跳转白名单的,只有属于白名单中的域名,子域名或url,QQ授权服务器才会进行跳转,如果发现redirect_url不合法,则跳转到非法页面的。

如何防御

通过以上具体场景的分析,我们可以知道,之所以会出现url跳转漏洞,就是因为服务端没有对待跳转的url做合法性校验导致的,那么预防这种攻击的方式,就是对客户端传入的跳转url做合法性校验。

常见方法:

  1. 服务端配置跳转白名单或域名白名单,只对合法的url做跳转 -常用;
  2. 对请求参数做加密和签名,防止参数被篡改,服务端要能够合法解析url -不常用;