URL跳转漏洞

URL漏洞介绍

URL跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。

URL跳转漏洞产生的原因
没有考虑过任意URL跳转漏洞,或者根本不知道/不认为这是个漏洞。
考虑不周,用取子串、取后缀等方法简单判断,代码逻辑可被绕过。
对传入参数做一些奇葩的操作(域名剪切/拼接/重组)和判断,适得其反,反被绕过。
原始语言自带的解析URL、判断域名的函数库出现逻辑漏洞或者意外特性,可被绕过。
原始语言、服务器/容器特性/容器特性、浏览器等对标准URL协议解析处理等差异性导致被绕过。
对于URL跳转的实现一般会有几种实现方式:
META标签内跳转
Javascript跳转
Header头跳转
URL跳转漏洞介绍
1、钓鱼
利用源码小偷制作的钓鱼网站
2、配合csrf
配合csrf操作危险请求
3、配合xss漏洞
xss执行js等
URL跳转利用方法
直接跳转没做任何限制,参数后直接根要跳转过去的网址就行。
协议一致性当程序员检验跳转的网址协议必须为https时(有时候跳转不过去不会给提示)。
域名字符串检测欺骗,有的程序员会检测当前的域名字符串是否在要跳转过去的字符串中,是子字符串时才会跳转。
漏洞通常发生在以下几个地方:
用户登录、统一身份认证处,认证完后会跳转;
用户分享、收藏内容过后,会跳转;
跨站点认证、授权后,会跳转;
站内点击其他网址链接时,会跳转。
漏洞演示及挖掘常见参数
在这里插入图片描述

URL跳转常规绕过

检测域名结尾是不是包含当前域名,是的话才会跳转:
绕过方式一:
https://www.landgrey.me/redirect.php?url=http://www.evil.com/www.landgrey.me
绕过方式二:买个xxxlandgrey.me域名
https://www.landgrey.me/redirect.php?url=http://xxxlandgrey.me
白名单检测域名是否为子域名:
绕过思路:去找子域里的URL跳转漏洞,进行二次跳转
http://www.landgrey.me/redirect.php?url=http://auth.landgrey.me/jump.do?url=evil.com

URL跳转漏洞畸形绕过

由于各种语言、框架和代码实现的不同,防护任意跳转代码的多种多样;导致绕过方式乍看起来很诡异,有多诡异?
案例一:多余/绕过
案例二:通过添加4个"/“前缀”/…“后缀,构造类似
案例三:通过”."字符,构造类似
漏洞修复方案绕过
第一种:
验证缺失
第二种:
利用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/5ulGe4g&BNVDLtCSEK
第四种:
业务判断了/字符并做了限制,使用"或?"绕过。

10种常用的bypass方案

  • 单斜线"/"绕过 https://www.landgrey.me/redirect.php?url=/www.evil.com
  • 缺少协议绕过 https://www.landgrey.me/redirect.php?url=//www.evil.com
  • 多斜线"/"前缀绕过 https://www.landgrey.me/redirect.php?url=///www.evil.com
    https://www.landgrey.me/redirect.php?url=www.evil.com
  • 利用"@"符号绕过 http://www.landgrey.me/redirect.php?url=https://www.landgrey.me@www.evil.com
  • 利用反斜线""绕过 http://www.landgrey.me/redirect.php?url=http://www.evil.com\www.landgrey.me
  • 利用"#"符号绕过
    http://www.landgrey.me/redirect.php?url=http://www.evil.com#www.landgrey.me
  • 利用""绕过
    http://www.landgrey.me/redirect.php?url=http://www.evil.com\www.landgrey.me
  • 利用"."绕过
    http://www.landgrey.me/redirect.php?url=.evil
    http://www.landgrey.me/redirect.php?url=.evil.com
  • 重复特殊字符绕过
    http://www.landgrey.me/redirect.php?url=///www.evil.com//…https://www.landgrey.me/redirect.php?url=www.evil.com//…
    其他绕过思路
    跳转到IP地址,而不是域名
    跳转到IPV6地址,而不是IPv4地址
    将要跳转到的IP地址用10进制、8进制、16进制形式表示
    更换协议,使用ftp、gopher协议等;
    漏洞修复方式
  • 加入referer的限制,保证该URL的有效性,避免恶意用户自己生成跳转链接。
  • 加入有效性验证Token,避免用户生成自己的恶意链接从而被利用
    功能本身要求比较开放,可能会产生一定的限制。
  • 设置严格白名单及网络边界
    功能要求比较开放的情况下,需要严格限定协议以及可访问的网络。
  • 使用正则匹配方案
  • 加入提醒机制,让用户自行判断
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值