URL跳转漏洞
预言 [ T9Sec ](javascript:void(0)😉 2020-01-14 23:50
描述
**URL 跳转漏洞:**攻击者通过传入的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
来源于P审的:https://www.yuque.com/pmiaowu/web_security_1/pqqgwg
URL跳转一般实现方式:
- META 标签跳转
- Javascript 跳转
- Header 头跳转
- 超链接跳转
- …
META 标签跳转
<meta name="test" content="<?php echo $_GET['url'];?>">
http://127.0.0.1/1.php?url=1;http://baidu.com" http-equiv="refresh&fsearch=yes
Javascript 跳转
<script>
window.location.href="<?php echo $_GET['url'];?>";
</script>
http://127.0.0.1/1.php?url=http://baidu.com
Header 头跳转
<?php
$url = $_GET['url'];
header("Location: $url");
?>
http://127.0.0.1/1.php?url=http://baidu.com
超链接跳转
<a href="<?php echo $_GET['url'];?>">点击返回</a>
http://127.0.0.1/1.php?url=http://baidu.com
遇到过的奇葩跳转
1、校验目录
http://test.com/login/?url=http://baidu.com/login
在挖专属的时候碰到一个校验目录的URL跳转,只要带有 login 就可以绕过
2、需要登录
http://test.com/?url=http://baidu.com
在做项目的时候,发现在登录的情况下会跳转到百度,不登录的情况就会提示 url 参数非法
登录处小技巧
登录:http://test.com/login/?url=http://baidu.com
退出:http://test.com/logout/?url=http://baidu.com
尝试把 login 改为 logout 可能有惊喜哦
白盒一些代码
Java:
response.sendRedirect(request.getParameter("url"));
PHP:
$redirect_url = $_GET['url'];
header("Location: " . $redirect_url);
.NET:
string redirect_url = request.QueryString["url"];
Response.Redirect(redirect_url);
Django:
redirect_url = request.GET.get("url")
HttpResponseRedirect(redirect_url)
Flask:
redirect_url = request.form['url']
redirect(redirect_url)
Rails:
redirect_to params[:url]
来源于:https://ninjia.gitbook.io/secskill/web/url
Bypass
@ 绕过
http://test.com/?url=http://test.com@baidu.com
?绕过
http://test.com/?url=http://baidu.com?test.com
. 绕过
http://test.com/?url=http://test.com.baidu.com
# 绕过
http://test.com/?url=http://baidu.com#test.com
hpp 绕过
http://test.com/?url=http://test.com&url=http://baidu.com
进制 绕过
http://test.com/?url=http://664552783
IP转换:https://ip.911cha.com/baidu.com.html
......
参考:
https://www.yuque.com/pmiaowu/web_security_1/pqqgwg
https://ninjia.gitbook.io/secskill/web/url