专栏首页Gcow安全团队url跳转漏洞原理及绕过方式

url跳转漏洞原理及绕过方式

注:本文仅供学习参考

0x01 url跳转原理及利用 0x02 url跳转bypass 0x03 url跳转修复

0x01 url跳转原理及利用 先走个流程说些废话,url重定向漏洞也称url任意跳转漏洞,网站信任了用户的输入导致恶意攻击,url重定向主要用来钓鱼,比如url跳转中最常见的跳转在登陆口,支付口,也就是一旦登陆将会跳转任意自己构造的网站,如果设置成自己的url则会造成钓鱼。

来看个最典型的

<?php
$url=$_GET['URL'];
header("Location: $url");
?>

URL没有任何限制,所以恶意用户可以提交 http://www.aaa.com/login.php?...://www.bbb.com(钓鱼网站)

来生成自己的恶意链接,安全意识较低的用户很可能会以为该链接展现的内容是www.aaa.com从而可能产生欺诈行为

成功跳转到百度

url跳转常见出现的地方

1. 登陆跳转我认为是最常见的跳转类型,认证完后会跳转,所以在登陆的时候建议多观察url参数
2. 用户分享、收藏内容过后,会跳转
3. 跨站点认证、授权后,会跳转
4. 站内点击其它网址链接时,会跳转
5. 在一些用户交互页面也会出现跳转,如请填写对客服评价,评价成功跳转主页,填写问卷,等等业务,注意观察url。
6. 业务完成后跳转这可以归结为一类跳转,比如修改密码,修改完成后跳转登陆页面,绑定银行卡,绑定成功后返回银行卡充值等页面,或者说给定一个链接办理VIP,但是你需要认证身份才能访问这个业务,这个时候通常会给定一个链接,认证之后跳转到刚刚要办理VIP的页面。

url跳转常用参数

redirect
url
redirectUrl
callback
return_url
toUrl
ReturnUrl
fromUrl
redUrl
request
redirect_to
redirect_url
jump
jump_to
target
to
goto
link
linkto
domain
oauth_callback

多多留意上面的参数

实战 观察箭头链接出现url参数,尝试任意url跳转

成功跳转到指定url,没做任何限制

0x02 url跳转bypass 在实战中,肯定没有那么顺利,多多少少做了限制 下面介绍一些常用的bypass

1.最常用的@绕过
url=http://www.aaaa.com@www.xxx.com(要跳转的页面)他有的可能验证只要存在aaaa.com就允许访问,做个@解析,实际上我们是跳转到xxx.com的
2.?号绕过
url=http://www.aaaa.com?www.xxx.com
3.#绕过
url=http://www.aaaa.com#www.xxx.com
4.斜杠/绕过
url=http://www.aaaa.com/www.xxx.com
等等等等

0x03 url跳转修复 1.若跳转的URL事先是可以确定的,包括url和参数的值,则可以在后台先配置好,url参数只需传对应url的索引即可,通过索引找到对应具体url再进行跳转; 2.若跳转的URL事先不确定,但其输入是由后台生成的(不是用户通过参数传人),则可以先生成好跳转链接然后进行签名,而跳转cg首先需要进行验证签名通过才能进行跳转; 3.若1和2都不满足,url事先无法确定,只能通过前端参数传入,则必须在跳转的时候对url进行按规则校验:即控制url是否是你们公司授权的白名单或者是符合你们公司规则的url:

function checkURL ( sURL) {
return (/^(https?:\/\/)?[\w-.]+.(yourDomainA|yourDomainB|yourDomainC).com($|\/|\)/i).test(sUrl)||(/^[\w][\w\/.-_%]+$/i).test(sUrl)||(/^[\/\][^\/\]/i).test(sUrl) ? true : false;    }

4.XSS漏洞的注意事项 :跳转url检测中也加入了CRLF头部注入漏洞的检测逻辑, 具体就是在请求参数中加入了%0d%0a这种测试代码,需要对这些参数进行删除处理(事实上:在判断到一个参数中包含 %00 -> %1f 的控制字符时都是不合法的,需对其进行删除)。

本文分享自微信公众号 - Gcow安全团队(Gcow666)

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

原始发表时间:2020-03-11

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CVE-2020-0688-微软Exchange服务器静态密钥缺陷导致远程代码EXP

    在2020年2月发布的最新微软月度补丁程序中,Microsoft发布了一个重要的补丁程序,以修复Microsoft Exchange服务器中的远程代码执行漏洞。...

    Gcow安全团队
  • SSRF原理实战及修复方式

    SSRF定义 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情...

    Gcow安全团队
  • 病毒分析快速入门(二)--实战QuasarRAT

    样本可从app.any.run获取,使用邮箱免费注册后,便可以下载该沙箱的公开样本

    Gcow安全团队
  • url跳转漏洞原理及绕过方式

    0x01 url跳转原理及利用 0x02 url跳转bypass 0x03 url跳转修复

    cn0sec
  • 盘点:2017年度这些科学大事件,哪个给您印象最深?

    量子技术爆发: 通信和计算领域的高速发展 ? 量子技术经过实验室中的漫长发展,在今年迎来了爆发期。 1月,由我国完全自主研制的世界上第一颗量子通信卫星“墨子号”...

    企鹅号小编
  • Git异常:fatal: V1.0 cannot be resolved to branch.

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ————————————————————...

    逸鹏
  • 马化腾:关于运用移动互联网推进智慧民生发展的建议

      全球已经步入移动互联网连接一切的时代。2015年1月,全球接入互联网的移动设备超过70亿台。我国的移动互联网发展也已走在世界前列。目前,我国互联网用户6.4...

    腾讯研究院
  • LeetCode 第 21 场双周赛(779/1913,前40.7%)

    全国排名:779 / 1913,40.7%;全球排名:2027 / 4729,42.8%

    Michael阿明
  • git提交代码到远程仓库 git 未能顺利结束 (退出码 1)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    周小董
  • SSRF 从入门到批量找漏洞

    如下是 example.com 去请求 http://google.com 的流程

    信安之路

扫码关注云+社区

领取腾讯云代金券