1.12 实验#12:testaspnet网站有未经认证的跳转

缺陷标题 国外网站testaspnet存在URL重定向钓鱼的风险。

测试平台与浏览器 Windows 7+Chrome或Firefox。

测试步骤

(1)打开testaspnet网站http://testasp.vulnweb.com,单击login链接。

(2)观察登录页面浏览器地址栏的URL地址,里面有一个RetURL,如图1-23所示。

图1-23 登录页面有成功后的RetURL

(3)篡改RetURL为http://testasp.vulnweb.com/Login.asp?RetURL=http://www.baidu.com,并运行篡改后的URL。

(4)在登录页面的Username文本框中输入admin'--,在Password文本框中输入密码,然后单击Login按钮,如图1-24所示。

图1-24 篡改RetURL

期望结果 即使登录成功,也不能跳转到百度网站。

实际结果 正常登录,并自动跳转到百度网站。

专家点评


1.URL重定向/跳转漏洞相关背景介绍

由于应用越来越多地需要和其他第三方应用交互,以及在自身应用内部根据不同的逻辑将用户引向不同的页面,如一个典型的登录接口就经常需要在认证成功之后将用户引导到登录之前的页面,整个过程中如果实现不好就可能导致一些安全问题,特定条件下可能引起严重的安全漏洞。

对于URL跳转,一般有以下几种实现方式。

(1)Meta标签内跳转。

(2)JavaScript跳转。

(3)http头跳转。

通过以GET或者POST的方式接收将要跳转的URL,然后通过上述几种实现方式中的一种跳转到目标URL。一方面,由于用户的输入会进入Meta、JavaScript、http头,所以都可能发生相应上下文的漏洞,如XSS等;另一方面URL跳转功能本身就存在一个缺陷,因为会将用户浏览器从可信的站点导向到不可信的站点,如果跳转时带有敏感数据,一样可能将敏感数据泄露给不可信的第三方。

如果URL中jumpto没有任何限制,则恶意用户可以提交http://www.XXX.org/login.php?jumpto=http://www.evil.com来生成自己的恶意链接,安全意识较低的用户很可能会以为该链接展现的内容是www.XXX.org,从而可能产生欺诈行为。由于QQ、阿里旺旺等在线IM都是基于URL的过滤,对一些站点会以白名单方式放过,所以导致恶意URL可以在IM里传播,从而产生危害。例如,这里如果IM认为www.XXX.org都是可信的,那么通过在IM里单击上述链接将导致用户最终访问evil.com恶意网站。

2.攻击方式及危害

恶意用户可以借用URL跳转漏洞来欺骗安全意识低的用户,从而导致“中奖”之类的欺诈,这对于一些有在线业务的企业(如淘宝等)危害较大。借助URL跳转,也可以突破常见的基于“白名单方式”的一些安全限制。例如,传统IM里对于URL的传播会进行安全校验,但是对于大公司的域名及URL将直接允许通过并且显示为可信的URL,而一旦该URL里包含一些跳转漏洞将可能导致安全限制被绕过。

如果引用一些资源的限制是依赖于白名单方式,同样可能被绕过导致安全风险。例如,常见的一些应用允许引入可信站点(如youku.com)的视频,限制方式往往是检查URL是否是youku.com来实现,如果youku.com内含一个URL跳转漏洞,将导致最终引入的资源属于不可信的第三方资源或者恶意站点,最终导致安全问题。

所有带有URL跳转的都可以尝试篡改至其他网站。常见可以篡改的URL有returnUrl、backurl、forwardurl、redirectURL、RetURL、BU、postbackurl、successURL等。