Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >URL跳转(开放重定向)挖掘技巧及实战案例全汇总

URL跳转(开放重定向)挖掘技巧及实战案例全汇总

作者头像
Jayway
发布于 2019-09-29 09:25:09
发布于 2019-09-29 09:25:09
17.4K0
举报
文章被收录于专栏:卓文见识卓文见识

1、概念:

开放重定向(Open Redirect),也叫URL跳转漏洞,是指服务端未对传入的跳转url变量进行检查和控制,导致诱导用户跳转到恶意网站,由于是从可信的站点跳转出去的,用户会比较信任。URL形如:

https://example.com/login?return=https://mysite.com/,后端代码形如:

response.sendRedirect(request.getParameter("url"))。

2、漏洞原理:

URL跳转三种实现方式:

  • META标签内跳转
  • javascript跳转
  • header头跳转

观察响应包,每种跳转方式对应的漏洞和利用方法也不同。

漏洞产生原因:

1. 代码层忽视URL跳转漏洞,或不知道/不认为这是个漏洞;

2. 代码层过滤不严,用取子串、取后缀等方法简单判断,代码逻辑可被绕过;

3. 对传入参数操作(域名剪切/拼接/重组)和判断不当,导致绕过;

4. 原始语言自带的解析URL、判断域名的函数库出现逻辑漏洞或者意外特性;

5. 服务器/容器特性、浏览器等对标准URL协议解析处理等差异性导致被绕过;

3、漏洞危害

URL跳转漏洞本身属于低危漏洞,但可以结合其他漏洞加以深入利用,主要的利用方式不仅限于钓鱼攻击,包括:

  • xss漏洞:通过javascript:alert(0)或CRLF;
  • 获取用户权限(伪造钓鱼网站、窃取登录凭证token);
  • 绕过检测(窃取CSRF token,绕过SSRF、RCE黑名单);
  • 高级利用方法(配合其他功能/漏洞)。

利用姿势不局限于上述几种,不要思维定势,具体看下面的实例。

4、实战案例

1、登录后重定向泄露会话令牌

redirect_url参数未经任何过滤,在登录后界面,请求链接:

https://mijn.werkenbijdefensie.nl/login?redirect_url=https://google.com,页面会被重定向到:

https://www.google.com/?user=xxx&token=xxxx&channel=mijnwerkenbijdefensie

导致用户ID和会话令牌泄露,从而接管整个账号。

Tips:关注登录后的登录请求url。

2、hboeck登录重定向及绕过

登录处重定向,访问:

https://tt.hboeck.de/public.php?return=http%3a%2f%2fevil.com%2f&op=login&login=password=&profile=0

随后hboeck修复了这个漏洞,但可以通过添加//进行绕过:

https://tt.hboeck.de/public.php?return=%2f%2f%2fevil.com%2f&op=login&login=password=&profile=0

Tips:有过滤时可以尝试多加一个或几个/。

3、chaturbate购买成功重定向

在购买成功后页面会发生跳转,但对于参数prejoin_data未做验证,访问:

https://64.38.230.2/tipping/purchase_success/?product_code=4137&prejoin_data=domain%2Fevil.com,页面会被重定向到:

https://evil.com/tipping/purchase_success/?product_code=4137。

Tips:关注业务结束后的跳转,这是容易忽视的一个测试点。

4、Hackerone特殊的跳转

当用户访问:

www.hackerone.com/index.php/index.phpxyz时用户将被重定向到www.hackerone.comxyz

访问链接:

http://www.hackerone.com/index.php/index.php.evil.com,用户将被重定向到www.hackerone.com.evil.com。所以每个系统的跳转机制不一样,在渗透时要尽量尝试各种可能发生跳转的请求。

5、Twimg重定向

Twitter 视频链接处:

https://t.lv.twimg.com/live_video_stream/authorized_status/883213898672783361/LIVE_PUBLIC/DEHOXIMUQAEbRFW?url=https://google.com/&ctx...&noredirect=false

关注参数&noredirect=,将参数从true改为false,可以重定向到任意站点。

Tips:关注任何场景下请求中的布尔型参数。

6、Twitter xss

访问Twitter链接:

https://dev.twitter.com/https:/%5cblackfan.ru/,页面回显为:

观察回显在返回头和返回主体,构造payload:

https://dev.twitter.com//x:1/:///%01javascript:alert(document.cookie)/

7、Digits callback_url参数绕过

Digits在登录成功后会通过HTTP 302重定向到业务界面,将登录凭证通过callback_url回调:

https://www.digits.com/login?consumer_key=9I4iINIyd0R01qEPEwT9IC6RE&host=https://www.digits.com&callback_url=https://www.periscope.tv若修改修改此参数为attacker.com,域名不在注册域内,系统会拒绝访问,此时可通过fuzzing探测后端检测机制,看是否可以绕过。

经测试发现系统只验证host值,一个常用的技巧是通过@绕过,@符之前的为认证凭据,@后为主机名,没有绕过。但经测试如果URL中包含一个ASCII码,会将非ASCII码转为?,这里输入https://attacker.com%ff@www.periscope.tv,可以成功绕过检测,?后的内容都会被解析为参数,从而跳转到attacker.com

8、Uber跳转的奇技淫巧

这是Orange发现的一个漏洞,这里写一下发现,扩展思路:

Uber内发现一个跳转链接:

http://pages.et.uber.com/Redirect.aspx?EQ=5c591a.....2406bd798a7f8312fde3acd3757bd120dfa0e40f3acb1e99e66c

EQ参数显然是加密后的参数,看起来像CBC模式加密,块大小是8,然后发现另一个链接:

https://pages.et.uber.com/hangzhou1year/?uuid=1234

在请求这个页面的时候,查看源代码会发现它的链接为:

https://pages.et.uber.com/Redirect.aspx?EQ=5c591a8916642e73e...d798a7f8312fde3acd3757bd120dfa025d290b1cf9a6e85

所以我们可以把要跳转的@attacker.com/?在此处进行加密,粘贴到参数处,最终跳转地址形如:https://uber.com@attacker.com/?a=1,成功跳转。

进一步可以触发xss:

data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K

Tips:跳转功能参数可能经过加密,尝试发现encode算法。

9、upload导致的重定向

Slack存在重定向漏洞:https://slack.com/checkcookie?redir=http://www.example.com,后成功修复,但存在文件上传功能,上传redirect.svg:

获取文件链接:

https://slack.com/checkcookie?redir=https://files.slack.com/files-pri/T0E7QLVLL-F0G41EG2W/redirect.svg?pub_secret=7a6caed489,用户点击连接,重定向到example.com。

这里也可以上传一个完整的html文件达到相同攻击效果:

10、Xss导致的重定向

一次对xss的挖掘过程中,发现输入的字符<>都做了过滤,只剩双引号:

这里输入payload:

1;url=http://www.baidu.com"http-equiv="refresh,meta标签内闭合双引号,成功定向到baidu:

5、挖掘技巧

在实际渗透过程中,可以在抓包历史中搜索返回状态码为302的请求包,业务层面,根据之前的挖掘经验,大多数的跳转漏洞都发生在登录功能处,其他存在漏洞的功能处有:注册、注销、改密,第三方应用交互,页面切换,业务完成跳转、返回上级、账号切换、保存设置、下载文件等等。

总体来讲,要观察哪些功能需要进行跳转,并关注任何涉及跳转操作的URL,常见的参数值有return、redirect、url、jump、goto、target、link、callback等,输入任意URL地址看是否可以任意跳转,若后台进行过滤,探测过滤算法,尝试过滤绕过。

6、过滤绕过

首先要确定系统的过滤规则,进行针对性的绕过,简单列举几个实用的方法:

1、/\attacker.com;

2、// attacker.com或//// attacker.com;

3、whitelist.com@ attacker.com;

4、//%2F/attacker.com

5、# attacker.com或? attacker.com

6、更改url形式:ip、进制数、更换/缺失协议

7、白名单检测绕过:

1)结合上传等功能,链接到域内地址;

2)利用超链接,搜索引擎或二级参数,如hackerone的外链跳转案例:

7、防御手段

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,这样可以避免恶意用户构造跳转链接进行散播;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卓文见识 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
参数污染漏洞(HPP)挖掘技巧及实战案例全汇总
HTTP参数污染,也叫HPP(HTTP Parameter Pollution)。简单地讲就是给一个参数赋上两个或两个以上的值,由于现行的HTTP标准没有提及在遇到多个输入值给相同的参数赋值时应该怎样处理,而且不同的网站后端做出的处理方式是不同的,从而造成解析错误。
Jayway
2019/09/29
8.4K0
参数污染漏洞(HPP)挖掘技巧及实战案例全汇总
Redirect攻击原理介绍和利用
注意:本文分享给安全从业人员,网站开发人员和运维人员在日常工作中使用和防范恶意攻击,请勿恶意使用下面描述技术进行非法操作。
全栈工程师修炼指南
2020/10/23
5.9K2
Redirect攻击原理介绍和利用
URL 跳转漏洞的利用技巧
URL跳转漏洞仅是重定向到另一个网址,如: https://www.example.com/?go=https://www.google.com/ 当我们访问这个url时,将从example.com
HACK学习
2019/08/05
4.8K0
不容易啊!一次ssrf到rce挖掘
目标站点为他们的API实现了一个API控制台,使用此控制台发出的请求是从服务器端完成的。以下面的请求为例。
tnt阿信
2020/11/09
8500
不容易啊!一次ssrf到rce挖掘
Web Hacking 101 中文版 十二、开放重定向漏洞
根据 OWASP,开放重定向出现在应用接受参数并将用户重定向到该参数值,并且没有对该值进行任何校验的时候。
ApacheCN_飞龙
2022/12/01
8250
安全研究 | Slack桌面应用程序的RCE漏洞+XSS漏洞
对于Slack的桌面应用程序来说,一些应用内跳转、XSS、逻辑重定向和HTML或javascript注入bug,都有可能导致任意代码执行。这篇Writeup就讲述了作者通过构造HTML注入,绕过Slack安全控制措施,最终在Slack桌面应用中实现了RCE漏洞的情况。
FB客服
2020/09/14
1.3K0
安全研究 | Slack桌面应用程序的RCE漏洞+XSS漏洞
挖洞经验 | 利用开放重定向漏洞劫持GitHub Gist账户
近期,我针对GitHub做了一些安全测试,特别对其不同的CSRF token进行了绕过测试,在此过程中,我顺带研究了urls生成的各种方法函数,希望从中发现用来创建token的相关方法,最后发现了其中的一个开放重定向漏洞,利用该漏洞可以成功劫持GitHub Gist账户。漏洞收获了$10,000的奖励。
FB客服
2020/11/23
7350
CRLF注入(响应截断)挖掘技巧及实战案例全汇总
CRLF是CR和LF两个字符的拼接,它们分别代表”回车+换行”(\r\n)“,全称为Carriage Return/Line Feed”,十六进制编码分别为0x0d和0x0a,URL编码为%0D和%0A。CR和LF组合在一起即CRLF命令,它表示键盘上的"Enter"键,许多应用程序和网络协议使用这些命令作为分隔符。
Jayway
2019/09/29
9.2K0
CRLF注入(响应截断)挖掘技巧及实战案例全汇总
url跳转漏洞原理及绕过方式
0x01 url跳转原理及利用 0x02 url跳转bypass 0x03 url跳转修复
黑白天安全
2020/03/19
2.3K0
url跳转漏洞原理及绕过方式
BUG赏金 | 我如何绕过领英的开放重定向保护
在这里,我将讨论几个月前在领英(Linkedln)中发现的一个不错的漏洞。在进入漏洞之前,让我快速向您介绍开放重定向。
Timeline Sec
2019/12/23
1.2K0
BUG赏金 | 我如何绕过领英的开放重定向保护
账户接管(Account Takeover)漏洞挖掘及实战案例全汇总
身份验证(Authentication):验证某人是特定用户,是否正确提供其安全凭据(密码,安全问题答案,指纹扫描等)。
Jayway
2019/09/29
5K0
账户接管(Account Takeover)漏洞挖掘及实战案例全汇总
漏洞挖掘 - Url重定向
URL重定向的定义是指把一个目录或文件的访问请求转发到另一个目录或文件上,当用户发出相应的访问请求的时候,网页能跳转到指定的位置。
Khan安全团队
2021/08/26
4.4K0
漏洞挖掘 - Url重定向
Bypass 重定向
http 参数可能包含 URL 值,并可能导致 Web 应用程序将请求重定向到指定的 URL。通过将 URL 值修改为恶意站点,攻击者可能会成功发起网络钓鱼诈骗并窃取用户凭据。由于修改后的链接中的服务器名称与原始站点相同,因此网络钓鱼尝试具有更可信的外观。
Khan安全团队
2022/01/10
1.5K0
渗透测试TIPS之Web(一)
3、一个不错的OSINT工具框架网址:http://osintframework.com/
Jumbo
2018/08/20
2.1K0
渗透测试TIPS之Web(一)
看我如何综合利用3个安全问题成功劫持Flickr账户获得7千美元漏洞赏金
Flickr( flickr.com)为雅虎Yahoo旗下图片和视频分享平台,提供免费及付费数位照片视频储存、分享和线上社交应用服务。本文中作者通过身份认证参数控制、外部链接重定向和图片处理绕过3个安全问题的综合利用,最终成功实现劫持Flickr的目标账户权限。我们一起来看看: 在Flickr的用户登录验证过程中,将会向login.yahoo.com发起一个获取用户访问令牌(access token)的请求。 Flickr.com的登录认证机制 当用户点击Flickr.com的登录按钮之后,将会转向到以
FB客服
2018/02/24
9300
看我如何综合利用3个安全问题成功劫持Flickr账户获得7千美元漏洞赏金
DDE注入(CSV)漏洞原理及实战案例全汇总
在渗透中遇到导出功能时,会如何进行测试?任意文件下载?或者越权查看?很多人很容易忽略的是DDE注入:导出格式为csv,xls时,或许你可以尝试构造这个漏洞,它不会对网站本身产生危害,但会对终端用户造成任意OS命令执行等危害。
Jayway
2019/09/29
10.3K0
DDE注入(CSV)漏洞原理及实战案例全汇总
公开web漏洞报告逻辑分析整理[持续更新]
最近因为个人所得税要补很多,所以重新整理复盘下漏洞报告,准备挖src补一下子亏空。
tea9
2023/03/17
3550
文件上传漏洞另类绕过技巧及挖掘案例全汇总
文件上传漏洞作为获取服务器权限最快的方式,虽然相关资料很多,但很多人对上传校验方式、如何针对性绕过检测、哪种上传和解析的场景会产生危害等还是比较模糊。本文作一些阐述,然后补充一些除了上传webshell的其他非常规挖掘姿势,包括XSS、重定向、Dos、CSRF等等。
Jayway
2019/09/29
7.3K0
文件上传漏洞另类绕过技巧及挖掘案例全汇总
看我如何窃取Messenger.com用户登录认证随机数并获得15000美元漏洞赏金
www.messenger.com是Facebook旗下即时通讯软件Messenger官网,该网站中添加了基于随机数认证( nonce based login )的Facebook登录服务,如果用户当前是Facebook登录状态,则可以直接以Facebook身份登录messenger.com。然而,由于随机数为用户生成了访问messenger.com的会话cookie,这种机制可能会让当前已登入的Facebook用户构造恶意随机数(nonce)和URL,使访问发生跳转。另外,在此过程中,由于当前的fac
FB客服
2018/02/24
2.6K0
看我如何窃取Messenger.com用户登录认证随机数并获得15000美元漏洞赏金
在Android应用中绕过主机验证的小技巧
android.net.Uri和java.net.URL的解析器中存在问题,它们不识别校验权限部分中的反斜杠(如果你测试java.net.URI将显示异常)。
用户1467662
2019/09/04
1.9K0
推荐阅读
相关推荐
参数污染漏洞(HPP)挖掘技巧及实战案例全汇总
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档