URL跳转漏洞挖掘(文末抽奖!!!)

admin 2022年3月9日16:03:18评论365 views字数 5383阅读17分56秒阅读模式

微信公众号:渊龙Sec安全团队
为国之安全而奋斗,为信息安全而发声!
如有问题或建议,请在公众号后台留言
如果你觉得本文对你有帮助,欢迎在文章底部赞赏我们

1、概念

开放重定向(Open Redirect),也叫URL跳转漏洞,是指服务端未对传入的跳转URL变量进行检查和控制,导致诱导用户跳转到恶意网站,由于是从可信站点跳转出去,用户会比较信任。

URL跳转漏洞挖掘(文末抽奖!!!)

注:本文中www.xxx.com和www.evil.com均非真实网站,只是举个例子

2、漏洞原理

URL跳转三种实现方式:

  • META标签内跳转

  • javascript跳转

  • header头跳转

观察响应包,每种跳转方式对应的漏洞和利用方法也不同。

漏洞产生原因:

  1. 代码层忽视URL跳转漏洞,或不知道/不认为这是个漏洞;

  2. 代码层过滤不严,用取子串、取后缀等方法简单判断,代码逻辑可被绕过;

  3. 对传入参数操作(域名剪切/拼接/重组)和判断不当,导致绕过;

  4. 原始语言自带的解析URL、判断域名的函数库出现逻辑漏洞或者意外特性;

  5. 服务器/容器特性、浏览器等对标准URL协议解析处理等差异性导致被绕过;

3、漏洞危害

URL跳转漏洞本身属于低危漏洞,但可以结合其他漏洞加以深入利用,主要的利用方式不仅限于钓鱼攻击,包括:

  • xss漏洞:通过javascript:alert(0)CRLF

  • 获取用户权限(伪造钓鱼网站、窃取登录凭证token);

  • 绕过检测(窃取CSRF token,绕过SSRF、RCE黑名单);

  • 高级利用方法(配合其他功能/漏洞)。

利用姿势不局限于上述几种。

如何挖掘url跳转漏洞-业务场景

1、登录退出授权认证

2、业务完成处(注册找回密码充值绑定银行卡某业务办理404跳转)

3、用户交互处(评论问卷分享收藏点击站内链接或其他用户)

4、漏洞构造漏洞 (任意上传后的html,引用其跳转)

5、跨站点认证、授权后,会跳转

6、浏览器或页面的返回,基于referer,可以尝试修改

7、登录处小技巧
1登录:http://www.xxx.com/login/?url=http://www.evil.com
2退出:http://www.xxx.com/logout/?url=http://www.evil.com
3尝试把 login 改为 logout

8、跳转目录的,
1https://www.xxx.com/?redirect=/user/info.php
2修改为
3https://www.xxx.com/[email protected]

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


9、点击触发达到绕过URL跳转限制
1https://www.xxx.com/?redirect=/user/info.php
2修改为
3https://www.xxx.com/[email protected]

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

比如很多登陆页面的地方,其URL是一个跳转的URL 如:
http://www.xxx.com/acb?Url=http://www.evil.com
你直接修改了后面为任意URL,但是还是停留在原地,似乎没什么问题,但是,当你输入账号和密码后点击登陆按钮后,就会触发跳转。

当然,这个账户和密码不一定要对的,随便都可以,但得视系统而定吧。这个我遇到了很多,比如你修改了域名,然后点击登陆,登陆成功后便可触发跳转,这也是一个比较隐蔽的绕过URL限制的跳转。


10、POST参数中的URL跳转

当然,这个影响就很小了,比如当你填什么表格或者需要填写什么的
当你上传图片,点击下一步的时候,通常下一步就是预览你填写的信息,最后才是提交。

举个例子,当你上传了图片后点击下一步抓包,如果过滤不严,你会
看到图片的完整地址包含在POST参数里,你就可以直接修改这个地址为任意URL,然后到达下一步。这时是确定信息也就是预览自己填写的信息的正确还是不正确,由于你刚刚修改了图片地址,这里是没有显示出来的,图像会是一个小XX。
(当点击图片右键选择查看图像时,就会触发URL跳转问题,其实这个也可以利用来进行钓鱼,钓后台审核员的信息。)
为什么呢,比如审核看到图片无法加载,一般都会点击查看图片,然后跳转,如果安全意识不知就会造成安全影响。当然,如果POST参数里就只是URL跳转参数,那么你可以给它转成GET方式,然后进行跳转就可以了,只要网站支持这样的GET方式就行。在Burp Suite里可以一键转换提交方式,右键选择Change request method就可以!

Fuzz

根据这些点我们可以考虑利用fuzz来对其进行探查出跳转漏洞
fuzz中理解为分 2 种

  1. 盲 fuzz 来找跳转参数

  2. 针对性找跳转参数

常见的参数名

收集了一些常见的跳转参数名

 1redirect
2url
3redirectUrl
4callback
5return_url
6toUrl
7ReturnUrl
8fromUrl
9redUrl
10request
11redirect_to
12redirect_url
13jump jump_to
14target
15to
16goto
17link
18linkto
19domain
20oauth_callback
21Out
22Dout
23goreturn
24returnTo
25logout
26register
27login
28path
29redirectURI
30redir
31returl
32share
33wap
34src
35source
36u
37display
38sourceURl
39imageURL
40linkurl
41service
42redirect_uri
43destUrl
44oauth
45r_url
46returnUri
47locationUrl
48qurl
49data
50ext
51clickurl
52next
53callback_url
54jump_url
55click?u
56originUrl
57sp_url
58rit_url
59forward_url
60forward success
61recurl
62j?url
63uri
64allinurl
65q
66linkAddress
67location
68pic
69burl
70backurl
71origin
72page
73u1
74action
75action_url
76dest

白盒代码审计参考

几种语句和框架版本常见的URL跳转代码如下,可用作白盒代码审计参考:

Java:

1response.sendRedirect(request.getParameter("url"));

PHP:

1$redirect_url = $_GET['url'];
2header("Location: " . $redirect_url);

.NET:

1string redirect_url = request.QueryString["url"]; 
2Response.Redirect(redirect_url);

Django:

1redirect_url = request.GET.get("url")
2HttpResponseRedirect(redirect_url)
3Flask: redirect_url = request.form['url']
4redirect(redirect_url) Rails: redirect_to params[:url]

Flask:

1redirect_url = request.form['url']
2redirect(redirect_url)

Rails:

1redirect_to params[:url]

URL跳转漏洞bypass总结

tips:URL跳转绕过方式类似SSRF,可以参考SSRF的bypass方式

另外有两个小技巧

  1. 校验目录 可能会校验某个路径的目录

  2. 可能需要登录

 1|@www.evil.com
2/www.evil.com
3//www.evil.com
4///www.evil.com
5////www.evil.com
6www.evil.com
7\www.evil.com
8\www.evil.com
9\\www.evil.com
10/www.evil.com
11@www.evil.com
12?www.evil.com
0x01:利用"@"符号绕过
1http://[email protected]
0x02:利用"?"号绕过
1http://www.xxx.com?www.evil.com
0x03:利用"#"符号绕过
1http://www.xxx.com#www.evil.com
0x04
1http://www.xxx.com/www.evil.com
0x05
1http://www.baidu.comwww.evil.com
0x06:利用"."绕过
1http://www.xxx.com.evil.com
2http://xxx.com.evil.com
3
4https://www.xxx.com/redirect.php?url=.evil

(可能会跳转到evil.com域名,也可能会跳转到www.xxx.com.evil域名)

0x07:xip.io绕过
1http://www.xxx.com.<替换IP地址>.xip.io
0x08利用白名单缺陷绕过限制
1evil.com #百度找一个黄网跳转证明危害

或者比如,当跳转的域名包含这个网站下的所有域名,比如:http://www.xxx.com/acb?Url=http://login.xxx.com.这个login.xxx.com也可以改成xxx.com同样可以跳转对吧

因为白名单里只要有包含这个域名就直接成功跳转。那么当我在这个域名前面加上如testxxx.com,白名单里会检查是否包含xxx.com这个域名,如果包含,就直接跳转,而并没有检查这个域名的整个信息,然后可以利用这个问题,直接注册一个testxxx.com这个域名,就可以利用这个跳转。

0x09:利用超链接多重验证绕过可信站点限制

比如一个URL,它是可以直接跳转的,但是一般测试跳转时大家习惯用 www.baidu.comqq.com这样的可信站点进行测试,但是有些网站是可以跳转这些网站的。


只要是可信站点且常用,基本都可以跳转,那么这就属于正常的业务逻辑了,难道就这样错失一个URL跳转漏洞了?

其实不然,只要你的URL被百度收录过,那么直接搜索你的域名,site:xxx.xxx因为你在百度里点击你的域名,它会先是一个302跳转,而这个302跳转就是百度下的302跳转,那么这样就可以绕过可信站点的限制,从而达到跳转到指定URL。
当然,百度这个302有点长,你给它进行加密就行。

插入截断字符
1%00 &0a %0d %07

其它绕过思路

其他思路:使用IP地址、IPv6地址、更换ftp、gopher协议

  1. 跳转到IP地址,而不是域名;

  2. 跳转到IPV6地址,而不是IPv4地址;

  3. 将要跳转到的IP地址用10进制、8进制、16进制形式表示;

1例如,baidu IP:183.232.231.172
2转16进制:b7 e8 e7 ac
3再转8进制:026772163654

我是Z,我在渊龙Sec安全团队等你
微信公众号:渊龙Sec安全团队
欢迎关注我,一起学习,一起进步~
本篇文章为团队成员原创文章,请不要擅自盗取!

URL跳转漏洞挖掘(文末抽奖!!!)
粉丝福利又来啦
感谢师傅们长期以来的支持,渊龙Sec安全团队开始了送书活动,这次挑选了《Web渗透攻防实战》送给3位粉丝
具体规则如下:
(1)关注本公众号:渊龙Sec安全团队
(2)在本公众号里回复关键字:抽奖 来参与抽奖
(3)将本文转发至朋友圈,抽奖前不可删除!抽奖前不可取消关注!
(4)开奖结束后,请中奖的小伙伴及时联系抽奖页面联系方式超过48小时未联系视为自动放弃
以上条件缺一不可哦!本次抽奖活动将在3月14 18:00 自动开奖

    过去网络安全距离我们很远,只要没有被攻击便可以忽略,而现在如果存在安全漏洞且一不小心被成功攻击,就可能导致很多公司财务等重要数据被勒索病毒感染,造成巨大经济损失!近几年来,国家展开了护网行动,加上各种机构经常组织CTF比赛等,网络安全越来越火,人才缺口也越来越大。“会渗透,是懂安全的基础;会漏扫,是懂渗透的基础;去实战,是检验能力的标准”此书可以给网络安全领域的专业人士或想入门的人士答疑解惑,是您必不可少的一本专业图书!

本书从网络攻防实战的角度,对Web漏洞扫描利用及防御进行全面系统的研究,由浅入深地介绍了在渗透过程中如何对Web漏洞进行扫描、利用分析及防御,以及在漏洞扫描及利用过程中需要了解和掌握的基础技术。

全书共分10章,包括漏洞扫描必备基础知识、域名信息收集、端口扫描、指纹信息收集与目录扫描、Web漏洞扫描、Web常见漏洞分析与利用、密码扫描及暴力破解、手工代码审计利用与漏洞挖掘、自动化的漏洞挖掘和利用、Web漏洞扫描安全防御,基本涵盖了Web漏洞攻防技术体系的全部内容。书中还以一些典型漏洞进行扫描利用及实战,通过漏洞扫描利用来还原攻击过程,从而可以针对性地进行防御。

URL跳转漏洞挖掘(文末抽奖!!!)


URL跳转漏洞挖掘(文末抽奖!!!)

原文始发于微信公众号(渊龙Sec安全团队):URL跳转漏洞挖掘(文末抽奖!!!)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月9日16:03:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   URL跳转漏洞挖掘(文末抽奖!!!)https://cn-sec.com/archives/823952.html

发表评论

匿名网友 填写信息