专栏首页卓文见识URL跳转(开放重定向)挖掘技巧及实战案例全汇总

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

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

本文分享自微信公众号 - 卓文见识(zhuowenjianshi),作者:Jayway

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SSRF漏洞原理、挖掘技巧及实战案例全汇总

    SSRF(Server-Side Request Forgery:服务器端请求伪造)产生原因是服务端提供了从其他服务器应用获取数据的功能,比如从指定URL地址获...

    Jayway
  • CORS配置不当—挖掘技巧及实战案例全汇总

    CORS,即跨源资源共享(Cross-Origin Resource Sharing)。同源策略(Same OriginPolicy)要求不同源之间是无法通信的...

    Jayway
  • 越权漏洞(e.g. IDOR)挖掘技巧及实战案例全汇总

    Insecure Direct Object reference (IDOR)不安全的直接对象引用,基于用户提供的输入对象直接访问,而未进行鉴权,这个漏洞在国内...

    Jayway
  • JSON相关漏洞(Hijacking+Injection)挖掘技巧及实战案例全汇总

    本文一是在为测试过程中遇到json返回格式时提供测试思路,二是几乎所有国内的资料都混淆了json和jsonp的区别——这是两种技术;以及json和js...

    Jayway
  • 参数污染漏洞(HPP)挖掘技巧及实战案例全汇总

    HTTP参数污染,也叫HPP(HTTP Parameter Pollution)。简单地讲就是给一个参数赋上两个或两个以上的值,由于现行的HTTP标准没有提及在...

    Jayway
  • CRLF注入(响应截断)挖掘技巧及实战案例全汇总

    CRLF是CR和LF两个字符的拼接,它们分别代表”回车+换行”(\r\n)“,全称为Carriage Return/Line Feed”,十六进制编码分别为0...

    Jayway
  • 跨站请求伪造(CSRF)挖掘技巧及实战案例全汇总

    Cross-Site Request Forgery跨站请求伪造漏洞,简称CSRF或XSRF,强制最终用户在当前对其进行身份验证的Web应用程序上执行不需要的操...

    Jayway
  • 条件竞争(Race condition)漏洞挖掘技巧及实战案例全汇总

    条件竞争漏洞(Race condition)官方概念是“发生在多个线程同时访问同一个共享代码、变量、文件等没有进行锁操作或者同步操作的场景中。” 这个漏洞存在于...

    Jayway
  • 个人渗透测试思路(cheatsheets)及技巧全汇总

    大多数渗透人员在对一个系统做渗透测试的时候,最大的痛点是无法获得一个全面的测试思路和流程,以至于遗漏真正存在的漏洞或在不存在漏洞的点上浪费太多时间。

    Jayway
  • 研究大数据不一定非要用自己的数据,我国政务大数据共享发展任重道远 | 大咖周语录

    国务院《促进大数据发展行动纲要》提到,推动政府信息系统和公共数据的互联共享,避免重复建设和数据打架,增强政府的公信力,促进社会信用体系建设。政府开放数据需要技术...

    数据猿
  • 10本书,从Python爬虫小白进阶数据分析大神(建议收藏)

    导读:吾日三省吾身,过年胖了吗?情人节过了吗?发际线还好吗?别想这么多啦,程序员和数据科学家的世界里,只有Python值得你费脑子!今天为大家准备了10本数据分...

    华章科技
  • 看雪2018安全开发者峰会,议题干货、安全大咖、头脑风暴!

    2018年7月21日,拥有18年悠久历史的老牌安全技术社区——看雪学院联手国内最大开发者社区CSDN,倾力打造一场技术干货的饕餮盛宴——2018 安全开发者峰会...

    华章科技
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群:很多朋友们接触安全都是通过书籍;网上流传的PDF;亦或是通过论坛里的文章,但可能经过了这样一段时间的学习,了解了一些常见漏洞的原理之后,对于漏洞挖...

    HACK学习
  • 数据分析经典图书大全,专治各种不懂!

    一、数据分析-入门篇 1.1《谁说菜鸟不会数据分析》 ? 作者:张文霖, 刘夏璐, 狄松 简介:本书按照数据分析工作的完整流程来讲解。全书共8章,分别讲解数据分...

    CDA数据分析师
  • 《R语言游戏数据分析与挖掘》新书推荐

    作者:谢佳标 微软中国MVP,多届中国R语言大会演讲嘉宾,目前在创梦天地担任高级数据分析师一职, 作为创梦天地数据挖掘组的负责人,带领团队对游戏数据进行深度挖掘...

    小莹莹
  • 二进制安全学习规划指南

    HACK学习
  • HackReport - 一些渗透文件分享

    │ │ └── 安恒信息:红队视角下又一个突破口,再看大国独有小程序.pdf

    drunk_kk
  • Java代码审计汇总系列(二)——XXE注入

    OWASP Top 10中的另一个注入漏洞是XML外部实体注入(XXE),它是在解析XML输入时产生的一种漏洞,漏洞原理和黑盒挖掘技巧见之前的文章:XML外部实...

    Jayway
  • 推荐一个自学Python的好地方!

    今天给大家分享几个我收藏的宝藏公众号资源。涵盖了Python基础、爬虫、数据分析、数据可视化、算法与人工智能等优质资源,关注之后肯定会大有收货~

    小F

扫码关注云+社区

领取腾讯云代金券