URL跳转有哪些姿势?

百家 作者:焦点安全应急响应中心 2021-02-26 19:46:11
前言

   “FSRC经验分享”系列文章,旨在分享焦点安全工作过程中的经验和成果,包括但不限于漏洞分析、运营技巧、SDL推行、等保合规、自研工具等。

    欢迎各位安全从业者持续关注~ 


0x01URL跳转及url跳转漏洞

    

随着网站的发展,功能越来越多,也需要依据不同的逻辑引向不同的页面,或和其他第三方应用交互。比如使用第三方账号进行登录,在登录时就会发生跳转;接入微信/支付宝支付功能,打开支付页面也会发生跳转。url跳转常见的几种情况如下:

meta标签跳转

<meta http-equiv="refresh" content="0.1; url=https://security.focuschina.com/">


JavaScript跳转

window.location.href = "https://security.focuschina.com/";
self.location = "https://security.focuschina.com/";


php header头跳转

<?php  header("Location: https://security.focuschina.com/");?>

url任意跳转漏洞也称url重定向漏洞。在跳转的过程中没有做好安全策略,网站对用户输入的参数没有校验或校验不合格,导致恶意参数被执行,将用户的页面引导至恶意第三方页面。如果本身网站允许跳转至外部网站,且在跳转至外部url时没有任何提示的话,表示存在此漏洞。


0x02URL跳转常见场景


URL跳转常见场景

   
  • 用户登录、统一身份认证处、认证以后发生跳转

  • 用户分享、收藏内容后会发生跳转

  • 跨站点认证、在授权后会认证

  • 站内对其他网站的链接,点击后会跳转


url跳转常见参数

   
  • redirect  

  • redirect_to

  • redirect_url

  • url

  • jump

  • jump_to

  • target

  • to

  • link

  • linkto

  • domain

  • callback

  • fromurl

  • goto

  • oauth_callback                                                                                


0x03URL跳转常见bypass

特殊符号绕过

   
# @绕过returnUrl=http://www.baidu.com@evil.com# .绕过returnUrl=http://www.baidu.com.evil.com# ?绕过returnUrl=http://www.evil.com?baidu.com#  #绕过returnUrl=http://www.evil.com#baidu.com
斜杠绕过

   
returnUrl=http://www.evil.com/baidu.com
returnUrl=http://www.evil.com\baidu.com
returnUrl=http://www.evil.com\\baidu.com
省略、更改协议名绕过

   
returnUrl=//www.evil.com
returnUrl=///www.evil.com
returnUrl=////www.evil.com
returnUrl=ftp://evil.com
白名单绕过

   
returnUrl=http://www.aaabaidu.com
xip.io绕过

   
xip.io是一个DNS解析网站,使用方法为域名+地址+xip.io
www.site.com.ip.xip.io  =  访问该ip 
http://www.made-in-china.com.220.181.38.148.xip.io/   = 访问 220.181.38.148(www.baidu.com)

returnUrl=http://www.baidu.com@evil.xip.io

ip绕过

   
returnUrl=http://115.159.231.173/baidu.com
进制绕过

   
returnUrl=http://664552783/sogou.com
二次跳转

   t8CmYfaUtCzPWWQNNQcv2V&wd=&eqid=ad19508b002ee6cd000000045d8d64
A网站信赖 baidu.com 域名,baidu.com存在url跳转漏洞或任意被百度爬虫爬取到的页面(如焦点科技官网:https://www.baidu.com/link?url=jJh6wlE-6Q8xHCMjkjVhpR0aiS_Z2Erbx-Uma-yYe4t8CmYfaUtCzPWWQNNQcv2V)
http://www.a.com/xxx?returnUrl=https://www.baidu.com/link?url=jJh6wlE-6Q8xHCMjkjVhpR0aiS_Z2Erbx-Uma-yYe4t8CmYfaUtCzPWWQNNQcv2V&wd=&eqid=ad19508b002ee6cd000000045d8d64c2
畸形地址绕过
由于web站点采用各种各样的语言以及框架,所以绕过的方式各不相同
# 通过添加多余的“/”(%2F),然后对%2F二次URL编码绕过网站对.com的分割https://www.aaa.com/%2Fevil/%252Ecom# 通过添加4个“/”前缀和“/…”后缀,突破限制(重复特殊字符绕过)https://www.aaa.com/redirect.php?url=www.evil.com/..


0x04URL跳转的危害及定级


url跳转主要的利用方式是钓鱼。用户点击恶意url后,跳转至伪造成登录页的恶意网站,欺骗用户输入账号及密码。相比于同样需要用户点击的CSRF、反射XSS,后两者用户交互后可直接在浏览器中执行代码,且url仍为官方网站。而url跳转,首先进入的网站域名为非官方,且用户还需要手动输入自己的相关敏感信息,难以造成实际危害,因此按照【直接依赖于用户安全意识的漏洞】忽略处理。


此外还存在一种情况,网站存在跨域,为了提升用户体验,会在url跳转中带入登录凭证(如token)。这种url跳转一旦跳转至恶意网站,可以直接泄漏用户登录凭证,因此按照【需要交互才能获取用户身份凭证的漏洞】定为低危。


url跳转也可以结合其他漏洞,如可以结合XSS造成蠕虫、通过url跳转造成referer安全策略失效、通过fuzzing获取登录信息并拼凑最终达到登陆凭证劫持。此类漏洞我们会根据实际危害和最终结果,给出相应的奖励。


0x05修复建议

白名单

   

服务端做好域名白名单或跳转白名单,只对合法的URL进行跳转。

这是目前最常见的方法,但是需要注意正则的匹配规则,避免“www.aaabaidu.com”“www.baidu.com.evil.com”等情况发生。

参数加密和签名

   

对请求参数做加密和签名,防止参数被篡改,服务端要能合法正确的解析URL。

此种方式多应用在跳转的URL是由后台生产,不是用户在前台输入的场景,不常见。


进行token验证

   

保证所有的链接是可信域中的,加入用户不可控的token在服务端进行验证,防止恶意跳转。

修复成本较大,不常见。

referer限制

   

确定传递URL参数的引入来源,保证URL的有效性,避免恶意用户自己生成的链接。

此种方法如果URL跳转带着HTTP referer头,会使得依赖referer头验证的方式失效,因此目前已经不常见。

0x06FSRC的话


FSRC设立的本心,就是通过外部安全专家,帮助项目组消除可能存在的安全隐患。我们的目标其实就是收取真正存在的、可以对用户的数据造成各种影响的漏洞。


2021年我们修订了定级规则,按照漏洞真正可造成的实际危害来作为定级的第一标准。减少收取了一些实质上对业务没有实际影响的漏洞,通过举办活动和后续的奖励调整,提高对真正有影响的漏洞的奖励。


我们也深深希望各位白帽能对漏洞的危害进行思考,如何将漏洞深度挖掘、组合利用,进而提出真正有威胁、有价值的漏洞。对于此类漏洞,FSRC也不会吝于安全币,一定会给出满意的奖励。

0x07免责声明


本文中提到的相关资源已在网络公布,仅供研究学习使用,请遵守《网络安全法》等相关法律法规。



0x08参考资料


URL跳转漏洞学习总结(by lsowl)

https://www.lsowl.top/2018/11/12/URL跳转漏洞学习总结

浅析渗透实战中url跳转漏洞(by linuxsec)

https://www.cnblogs.com/linuxsec/articles/10926152.html

URL跳转-Fuzz深入再深入(by rosectow)

https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=51065





焦点安全,因你而变
 

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接