概述
URL跳转事件是比较常见的,比如,登陆网页以后,从登陆页面跳转到另一个页面,这就叫做URL跳转,但是URL跳转怎么和网络钓鱼联系在一起呢?下面将详细介绍URL跳转与钓鱼。
URL重定向漏洞也称URL任意跳转漏洞,网站信任了用户的输入导致恶意攻击,URL重定向主要用来钓鱼,比如URL跳转中最常见的跳转在登陆口,支付口,也就是一旦登陆将会跳转任意自己构造的网站,如果设置成自己的URL则会造成钓鱼,浅析危害。
username:
password:
<?php
$url=$_GET['redict'];
echo $_GET['username'];
if ($_GET['username']&&$_GET['password']) {
header("Location:$url");exit;
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
最简单的代码实例,也是很贴近真实渗透的案例,登陆跳转,后面通常是加上自己业务的url,一旦存在url任意重定向,发送给用户,会毫不疑问的输入账号密码登陆,然后跳转到我们想要他跳转的url,比如:
我们发送给用户这样的url,
http://127.0.0.1/url.php?username=&password=&redict=http://127.0.0.1/fish.php
1
用户正常输入账号密码登陆点击登陆。跳转到构造的页面。(我可真是个钓鱼鬼才)
当然钓鱼界面可以伪造一切你想获取的信息。
URL跳转
URL跳转一般分为两种,一种为客户端跳转,另一种为服务器端跳转。两种跳转对于用于来说都是透明的,都是指向或跳转到另一个页面,页面发生了变化,但是对于开发者来说,其区别是很大的。
客户端跳转
服务器端跳转
服务器端跳转也称为URL转发,服务器端跳转时,用户浏览的地址栏URL是不会发生变化的,比如,当前页面URL为:http://www.xxser.com/new.php ,当单击“登录”按钮后,浏览器地址栏的URL没变,但是页面会发生变化。
网络钓鱼
注意:URL转发不可作为URL跳转漏洞,因为URL转发是无法进行域名跳转的,所以URL跳转漏洞也称为URL重定向漏洞。
URL跳转漏洞可以说对自身并没有什么危害,但如果存在此漏洞,就极其有可能成为攻击者的帮凶。
bypass
其实bypass没什么新的套路(我暂时没),都是网上有的,师傅们可以百度到的,我整理一下,利用上面的代码简单测试,都是本地测试通过的。www.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
2、绕过一些匹配特定字符
?绕过
绕过
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
防御策略
根据上面的场景分析,我们知道,之所以会出现跳转 URL 漏洞,就是因为服务端没有对客户端传递的跳转地址进行合法性校验,所以,预防这种攻击的方式,就是对客户端传递过来的跳转 URL 进行校验。可以采用在服务端配置跳转白名单或域名白名单,只对合法的 URL 做跳转。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_39190897/article/details/86767713