渗透测试中URL跳转漏洞的利用

  • A+
所属分类:未分类

渗透测试中URL跳转漏洞的利用

前言

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


简介

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

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><form method="get" action="url.php"><br><br><br><br>username:<input type="text" name="username"><br><br>password:<input type="text" name="password"><input type="submit" value="登陆" name="password"></form>
<?php
$url=$_GET['redict'];echo $_GET['username'];if ($_GET['username']&&$_GET['password']) {
header("Location:$url");exit;}?>

渗透测试中URL跳转漏洞的利用

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

我们发送给用户这样的url,

http://127.0.0.1/url.php?username=&password=&redict=http://127.0.0.1/fish.php
用户正常输入账号密码登陆点击登陆。跳转到构造的页面。(我可真是个钓鱼鬼才)

渗透测试中URL跳转漏洞的利用

渗透测试中URL跳转漏洞的利用

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


bypass

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

1.最常用的一条:@绕过。

http://127.0.0.1/url.php?username=1&password=1&password=1&redict=http://[email protected] //ssrf也可用
2.绕过一些匹配特定字符。
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
3.斜杠/绕过
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.comwww.xiaozhupeiqi.com
4.白名单匹配绕过

比如匹配规则是必须跳转,taobao.com 域名下,?#等都不行的时候,如果匹配规则为xiaozhupeiqi.com,可以尝试百度inurl:taobao.com的域名,比如

aaataobao.com,这样同样可以绕过。接下来实战中会用到。


5.xip.io绕过

http://127.0.0.1/url.php?username=1&password=1&password=1&redict=http://www.taobao.com.220.181.57.217.xip.io
会跳转到百度


6.理想化方法

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

7.白名单网站可信

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

8.协议绕过

http与https协议转换尝试,或者省略
http://127.0.0.1/url.php?username=1&password=1&password=1&redict=//[email protected]http://127.0.0.1/url.php?username=1&password=1&password=1&redict=////[email protected]//多斜线
9.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跳转漏洞的利用

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

方法:

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

渗透测试中URL跳转漏洞的利用

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

渗透测试中URL跳转漏洞的利用

[email protected]绕过

@是最常见的一种绕过。

漏洞url

https://xx.xxx.com/user/goToLogin?toUrl=https://[email protected]
这种跳转在chrome浏览器可以直接跳转,但是在火狐会弹框询问,但是并不影响它的危害。

火狐下@的跳转。

渗透测试中URL跳转漏洞的利用

还有一些是跳转目录的,

如:

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

修改为

https://xx.xxx.com.cn/[email protected]

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

3.充值接口跳转

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

渗透测试中URL跳转漏洞的利用

4.xss造成的url跳转

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

渗透测试中URL跳转漏洞的利用

可以发现我输入了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

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

渗透测试中URL跳转漏洞的利用

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

5.业务完成后跳转

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

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

渗透测试中URL跳转漏洞的利用

6.用户交互

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

问卷调查提交跳转。

渗透测试中URL跳转漏洞的利用

7.漏洞构造漏洞

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

渗透测试中URL跳转漏洞的利用

渗透测试中URL跳转漏洞的利用

渗透测试中URL跳转漏洞的利用

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


往期精彩


登陆页面的检测及渗透

渗透实战篇(一)

渗透测试信息收集的方法

常见Web中间件漏洞利用及修复方法

内网渗透 | 流量转发场景测试

Waf从入门到Bypass

实战渗透-看我如何拿下学校的大屏幕

技术篇:bulldog水平垂直越权+命令执行+提权

渗透工具实战技巧大合集 | 先收藏点赞再转发一气呵成


渗透测试中URL跳转漏洞的利用

感兴趣的可以点个关注!!!

渗透测试中URL跳转漏洞的利用

关注「安全先师」
把握前沿安全脉搏



发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: