任意URL跳转漏洞详解
任意URL跳转漏洞简介
服务端未对传入的跳转url变量进行检查和控制,导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。由于是从可信的站点跳转出去的,用户会比较信任,所以跳转漏洞一般用于钓鱼攻击,通过转到恶意网站欺骗用户输入用户名和密码盗取用户信息,或欺骗用户进行金钱交易。
URL跳转漏洞也叫开放重定向,如下面的格式的url
https://08571.com/login?return=https://yaojiaohui.net/
漏洞危害
URL跳转漏洞本身属于低危漏洞,但可以结合其他漏洞加以深入利用,主要的利用方式不仅限于钓鱼攻击,包括:
xss漏洞:通过javascript:alert(0)或CRLF;
获取用户权限(伪造钓鱼网站、窃取登录凭证token);
绕过检测(窃取CSRF token,绕过SSRF、RCE黑名单);
高级利用方法(配合其他功能/漏洞)。
实战案例
登录后重定向泄露会话令牌
redirect_url参数未经任何过滤,在登录后界面,请求链接:
https://08571.com/login?redirect_url=https://yaojiaohui.net,页面会被重定向到:
https://www.yaojiaohui.net/?user=xxx&token=xxxx&channel=mijnwerkenbijdefensie
导致用户ID和会话令牌泄露,从而接管整个账号。
Tips:关注登录后的登录请求url。
挖掘技巧
在实际渗透过程中,可以在抓包历史中搜索返回状态码为302的请求包,业务层面,根据之前的挖掘经验,大多数的跳转漏洞都发生在登录功能处,其他存在漏洞的功能处有:注册、注销、改密,第三方应用交互,页面切换,业务完成跳转、返回上级、账号切换、保存设置、下载文件等等。
总体来讲,要观察哪些功能需要进行跳转,并关注任何涉及跳转操作的URL,常见的参数值有return、redirect、url、jump、goto、target、link、callback等,输入任意URL地址看是否可以任意跳转,若后台进行过滤,探测过滤算法,尝试过滤绕过。
过滤绕过
假设跳转链接http://www.08571.com?url=http://yaojiaohui.net
其中http://test.com为正常跳转链接
恶意钓鱼链接为fishing-08571.com,ip地址为192.168.1.1
@符号绕过
http://www.08571.com?url=http://yaojiaohui.net@fishing-08571.com
问号绕过
http://www.08571.com?url=http://fishing-08571.com?yaojiaohui.net
# 绕过
http://www.08571.com?url=http://fishing-08571.com#yaojiaohui.net
正反斜杠绕过
http://www.08571.com?url=http://fishing-08571.com/yaojiaohui.net
http://www.08571.com?url=http://fishing-08571.com\yaojiaohui.net
http://www.08571.com?url=http://fishing-08571.com\\yaojiaohui.net
http://www.08571.com?url=http://fishing-08571.com\.yaojiaohui.net
白名单
部分网站对跳转做了内容检测,比如白名单允许包含fish字符的链接通过,那么我们就能找包含fish的链接就行跳转。
http://www.08571.com?url=http://fishing-08571.com
多重跳转
例如 网站存在跳转http://www.08571.com?url=http://yaojiaohui.net,但是限制仅限于08571.com,那么我们为了达到目的可以先跳转到08571.com,在跳转到fishing-08571.com
http://www.08571.com?url=http://yaojiaohui.net?url=fishing-08571.com
功能触发跳转
某些时候在修改链接后加载没反应,可能需要触发某功能来进行跳转,比如登录,删除等,具体看跳抓链接处于那个功能点。
xip.io绕过
http://www.08571.com?url=http://yaojiaohui.net.192.168.1.1.xip.io
协议绕过
删除或切换http和https,或者增加多个斜杠
http://www.08571.com?url=//fishing-08571.com#yaojiaohui.net
http://www.08571.com?url=///fishing-08571.com#yaojiaohui.net
xss跳转
xss情况比较多,根据实际情况而定
防御手段
1、最有效的方法之一就是使用白名单严格控制将要跳转的域名,如:
function checkURL ( sURL) {
return(/^(https?:\/\/)?[\w-.]+.(yourDomainA|yourDomainB|yourDomainC).com($|\/|\)/i).test(sUrl)||(/^[\w][\w\/.-_%]+$/i).test(sUrl)||(/^[\/\][^\/\]/i).test(sUrl)? true : false;}
2、限制referer、添加token,这样可以避免恶意用户构造跳转链接进行散播;
本文为要教会原创,欢迎转载分享。转载时请务必在文章页面明显位置提供本文链接并注明出处。感谢您对知识的尊重和对本文的肯定!本文链接网址:https://www.yaojiaohui.net/wangluoanquan/1598.html
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。