URL重定向漏洞也称URL任意跳转漏洞,是由于网站信任了用户的输入导致恶意跳转。URL重定向主要用来钓鱼,比如URL跳转中最常见的跳转在登录口、支付口,也就是一旦登录将会跳转任意自己构造的网站,如果设置成指定的URL,则会造成钓鱼等危害。
在测试中多留意一些跳转的参数,更直接的是直接关注状态码为301、302的数据包,然后再去分析尝试是否存在任意跳转。最简单的跳转就是在这些参数后面加上要跳转的地址,访问后即可成功跳转。不过,这种跳转在实战中很少能碰到了,大部分都是需要去绕一下。
URL跳转常用参数如下:
redirect redirect_to redirect_url url jump jump_to target to link linkto domain Out Dout go return returnTo logout register login returnUrl path redirectURI redir returl share wap src source u display sourceURl imageURL linkurl RedirectUrl service redirect_uri destUrl oauth_callback oauth goto redirectUrl callback return_url toUrl ReturnUrl fromUrl redUrl request
绕过常用的方法如下:
@ 绕过 http://xxx.com/?url=http://xxx.com@baidu.com ? 绕过 http://xxx.com/?url=http://baidu.com?xxx.com . 绕过 http://xxx.com/?url=http://xxx.com.baidu.com # 绕过 http://xxx.com/?url=http://baidu.com#xxx.com / 绕过,可以尝试多个正斜杠一起用,如/、//、/// http://xxx.com/?url=http://baidu.com/xxx.com \ 绕过 http://xxx.com/?url=http://baidu.com\xxx.com 双写参数 绕过 http://xxx.com/?url=http://xxx.com&url=http://baidu.com 进制 绕过 http://xxx.com/?url=http://3232235777 (3232235777为IP地址192.168.1.1的十进制值 以192.168.1.1为例,把它转为10进制数的公式是: 192 * 256^3 + 168 * 256^2 +1 * 256 + 1 * 1 = 3232235777) 第三方 绕过 http://xxx.com/?url=https://www.baidu.com/link?url=yti8PhYOnbmJkgvkJj4P7iT4HLM4BO9pK0esOAK376K (假设网站是允许跳转baidu.com这个域名的,但不可跳转别的域名,那就可以借助baidu.com这个域名来实现跳转到其他网站)
# 绕过
@ 绕过
. 绕过
构造XSS语句,使其进行URL跳转,其本质是此处存在XSS跨站脚本漏洞。
部分跳转的XSS语句如下:
<sCrIpT>location.href="http://www.baidu.com";</ScRiPt> <script>location.replace("http://www.baidu.com")</script> <script>location.assign("http://www.baidu.com")</script> <img src=1 one rror=location.href="http://www.baidu.com"> <meta content="1;url=http://www.baidu.com" http-equiv="refresh">