URL跳转有哪些姿势?
前言
“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跳转常见场景
用户登录、统一身份认证处、认证以后发生跳转
用户分享、收藏内容后会发生跳转
跨站点认证、在授权后会认证
站内对其他网站的链接,点击后会跳转
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
returnUrl=http://www.baidu.com@evil.xip.io
returnUrl=http://115.159.231.173/baidu.com
returnUrl=http://664552783/sogou.com
http://www.a.com/xxx?returnUrl=https://www.baidu.com/link?url=jJh6wlE-6Q8xHCMjkjVhpR0aiS_Z2Erbx-Uma-yYe4t8CmYfaUtCzPWWQNNQcv2V&wd=&eqid=ad19508b002ee6cd000000045d8d64c2
# 通过添加多余的“/”(%2F),然后对%2F二次URL编码绕过网站对.com的分割
https://www.aaa.com/%2Fevil/%252Ecom
# 通过添加4个“/”前缀和“/…”后缀,突破限制(重复特殊字符绕过)
https://www.aaa.com/redirect.php?url=www.evil.com/..
0x04URL跳转的危害及定级
0x05修复建议
服务端做好域名白名单或跳转白名单,只对合法的URL进行跳转。
这是目前最常见的方法,但是需要注意正则的匹配规则,避免“www.aaabaidu.com”“www.baidu.com.evil.com”等情况发生。
对请求参数做加密和签名,防止参数被篡改,服务端要能合法正确的解析URL。
此种方式多应用在跳转的URL是由后台生产,不是用户在前台输入的场景,不常见。
保证所有的链接是可信域中的,加入用户不可控的token在服务端进行验证,防止恶意跳转。
修复成本较大,不常见。
确定传递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/
随时掌握互联网精彩
- 1 习近平澳门之行 这些瞬间令人难忘 7987570
- 2 “92年”超级牛散1个月赚了1.7亿 7971411
- 3 冬至开始千万别熬夜 7827276
- 4 在澳门 传统文化在指尖绽放 7791678
- 5 这座一线城市 开始限制电动自行车 7699595
- 6 李嘉欣和老公滑雪 皮肤白到发光 7521343
- 7 小伙长期喝饮料双手长满痛风石 7439360
- 8 大四男生遭电瓶烧伤室友被逮捕 7391317
- 9 网红吃宵夜晕倒 昏迷8个月去世 7213737
- 10 非遗冬至宴 消寒祈福长 7187646