找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4914

积分

0

好友

701

主题
发表于 2 小时前 | 查看: 3| 回复: 0

前言

最近在一些厂商项目中开始接触到一些 url任意重定向,虽然是低危,奖金较低(虽然国外已经是几百$),但是一旦找到突破点,几乎整个站的 URL 跳转都可以 bypass,一个厂商所有点的 URL 跳转加起来奖金也比较可观,所以将自己挖掘过程中的一点心得分享一下。

简介

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

最简单的代码实例,也是很贴近真实渗透的案例,登录跳转,后面通常是加上自己业务的 URL,一旦存在 URL 任意重定向,发送给用户,会毫不疑问地输入账号密码登录,然后跳转到我们想要他跳转的 URL,比如:

我们发送给用户这样的 URL:

http://127.0.0.1/url.php?username=&password=&redict=http://127.0.0.1/fish.php

用户正常输入账号密码登录点击登录,跳转到构造的页面。

我可真是个钓鱼鬼才。

使用 HackBar 构造 URL 跳转请求示例

URL 跳转导致的钓鱼页面警告弹窗示例

钓鱼页面示例:诱导输入密码

当然钓鱼界面可以伪造一切你想获取的信息。

Bypass 技巧

其实 bypass 没什么新的套路(我暂时没),都是网上有的,师傅们可以百度到的,我整理一下,利用上面的代码简单测试,都是本地测试通过的。xiaozhupeiqi.com 是服务器要求跳转的 URL。

  1. 最常用的一条:@ 绕过。
http://127.0.0.1/url.php?username=1&password=1&password=1&redict=http://www.xiaozhupeiqi.com@www.baidu.com //ssrf也可用
  1. 绕过一些匹配特定字符。

? 绕过

http://127.0.0.1/url.php?username=1&password=1&password=1&redict=http://www.baidu.com?www.xiaozhupeiqi.com

# 绕过

http://127.0.0.1/url.php?username=1&password=1&password=1&redict=http://www.baidu.com#www.xiaozhupeiqi.com
  1. 斜杠 / 绕过
http://127.0.0.1/url.php?username=1&password=1&password=1&redict=http://www.baidu.com/www.xiaozhupeiqi.com

或者反斜线

http://127.0.0.1/url.php?username=1&password=1&password=1&redict=http://www.baidu.com\www.xiaozhupeiqi.com
  1. 白名单匹配绕过

比如匹配规则是必须跳转 xiaozhupeiqi.com 域名下,?、# 等都不行的时候,如果匹配规则为 xiaozhupeiqi.com,可以尝试百度 inurl:xiaozhupeiqi.com 的域名,比如 aaaxiaozhupeiqi.com,这样同样可以绕过。接下来实战中会用到。

  1. xip.io 绕过
http://127.0.0.1/url.php?username=1&password=1&password=1&redict=http://www.xiaozhupeiqi.com.220.181.57.217.xip.io
  1. 理想化方法

如果有机会在自己的页面设置 URL 跳转,比如目标网站的 BBS 论坛自己的资料页面设置 URL 跳转,既然是服务器本域的网站,那么 URL 是不会限制的,可以用一个漏洞去构造另一个漏洞。

  1. 白名单网站可信

如果 URL 跳转点信任百度 URL、Google URL 或者其他,则可以多次跳转达到自己的恶意界面。

  1. 协议绕过

http 与 https 协议转换尝试,或者省略 http。

http://127.0.0.1/url.php?username=1&password=1&password=1&redict=//www.xiaozhupeiqi.com@www.baidu.com
http://127.0.0.1/url.php?username=1&password=1&password=1&redict=////www.xiaozhupeiqi.com@www.baidu.com//多斜线
  1. XSS 跳转

这种就没啥说的了,就是 XSS 造成的跳转,下面也有案例,在有些情况下 XSS 只能造成跳转的危害。

<meta content="1;url=http://www.baidu.com" http-equiv="refresh">

Fuzz 几个参数

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

实战几个案例

  1. 最常见的登录跳转

登录跳转我认为是最常见的跳转类型,几乎百分之七八十网站都会 URL 里设置跳转,所以在登录的时候建议多观察 URL 参数,通常都会存在跳转,至于存不存在漏洞需要自己测试。

上面的类型四,漏洞 URL:

https://xx.xxx.com/User/Login?redirect=http://xxx.com/

登录页面 URL 中包含 redirect 参数示例

为登录页面,如果登录成功那么跳转 http://xxx.com/,但是所有方式都无法绕过,但是发现可以跳转 aaxxx.com,也就是匹配规则为必须为 xxx.com 的网址,但是 aaxxx.com 同样也可以。

方法:百度 inurl:xxx.com,即可百度到很多域名包含 xxx.com 的 URL,即可实现跳转,不小心百度到一个黄域,正好证明危害:登录跳转至 XX 网。

通过搜索引擎查找同域站点绕过白名单

还有一些花里胡哨的 base64 加码了的跳转,解码就是需要跳转的 URL,其实本质都一样。

Base64 编码的跳转 URL 示例

  1. @ 绕过

@ 是最常见的一种绕过。

漏洞 URL:

https://xx.xxx.com/user/goToLogin?toUrl=https://xx.xxx.com@www.baidu.com

这种跳转在 Chrome 浏览器可以直接跳转,但是在火狐会弹框询问,但是并不影响它的危害。

火狐下 @ 的跳转:

火狐浏览器中 @ 跳转的确认对话框

还有一些是跳转目录的,如:

https://xx.xxx.com.cn/?redirect=/user/info.php

修改为:

https://xx.xxx.com.cn/?redirect=@www.baidu.com

这种情况通常 @ 也可以跳转,大胆地去尝试。

  1. 充值接口跳转

通常充值接口都会进行跳转,如充值成功会跳转到充值前访问的页面,因为充值接口需要充值才能知道到底存不存在漏洞,所以测试的人相对少一些,大胆去尝试,单车变摩托,充值完成后还可以提现其实并不影响,不嫌麻烦就多测测。这些都是跳转成功的案例。

充值接口中的 redirect 参数跳转示例

  1. XSS 造成的 URL 跳转

在一次渗透测试中,碰到一个站点,对 <>" 这些字符都是进行了过滤,且没有其他姿势配合,基本上告别了 XSS 等漏洞。如下:

XSS 测试输入被过滤的结果页面

可以发现我输入了 xsstest<>",但是 <> 被直接删除过滤掉了,但是发现双引号还在,先看下源码是怎么处理的。

源码显示双引号未正确过滤导致 URL 跳转

乍一看双引号也被转义了,输入的 xsstest 搜索有十七处,大部分被实体化了,还有一部分双引号被 URL 编码了,但是此时突然发现我箭头指的一处并未对双引号进行转义或者过滤,虽然 <> 已经完全被过滤掉了。

此时构造 meta 的 URL 跳转。

Payload:

http://xxx.com/search?w=1;url=http://www.baidu.com" http-equiv="refresh&fsearch=yes

其中输入:

1;url=http://www.baidu.com" http-equiv="refresh

最终闭合掉得到的源码为:

利用未过滤双引号构造 meta 跳转的源码

最终点击 payload 会跳转百度页面,其实这个严格意义上来说算 XSS 造成的跳转,构造应该也可以 XSS。

  1. 业务完成后跳转

这可以归结为一类跳转,比如修改密码,修改完成后跳转登录页面;绑定银行卡,绑定成功后返回银行卡充值等页面;或者说给定一个链接办理 VIP,但是你需要认证身份才能访问这个业务,这个时候通常会给定一个链接,认证之后跳转到刚刚要办理 VIP 的页面。

通常这个点都会存在跳转,至于存不存在任意跳转,师傅们自测,有些跳转业务不好截图就不发了。

returnUrl 参数中的 URL 跳转示例

绑卡成功后自动跳转提示页面

  1. 用户交互

在一些用户交互页面也会出现跳转,如请填写对客服评价,评价成功跳转主页;填写问卷等等业务,注意观察 URL。

问卷调查提交跳转:

问卷调查提交后的自动跳转页面

  1. 漏洞构造漏洞

一次渗透测试中碰到一个任意文件上传漏洞,但是不幸的是没办法解析任何后端语言,没办法进一步利用,只能前端造成一点危害,但是存放文件的服务器一般比较偏远,此时可以利用我们任意文件上传的 HTML,然后来进一步利用,绕过本来无法绕过的 URL 跳转漏洞。因为存放文件的域名肯定是符合网站跳转范围。

上传 HTML 文件利用 URL 跳转示例

最终构成 URL 跳转漏洞,当然可以获取 cookie 造成更多的危害,本文仅讨论 URL 跳转。

更多渗透测试技巧可访问云栈社区。




上一篇:CVE-2026-31635分析:RxGK DirtyCBC漏洞如何绕过边界检查实现本地提权
下一篇:Codex + GPT-5.5 Pro 额度互通实操:把 ChatGPT 接入 Codex,规划执行分工更划算
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-6-21 04:35 , Processed in 0.755952 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表