URL跳转漏洞

URL跳转漏洞

简介

URL 跳转漏洞也叫作 URL 重定向漏洞,由于服务端未对传入的跳转地址进行检查和控制,从而导致攻击者可以构造任意一个恶意地址,诱导用户跳转至恶意站点。因为是从用户可信站点跳转出去的,用户会比较信任该站点,所以URL跳转漏洞常用于钓鱼攻击,通过转到攻击者精心构造的恶意网站来欺骗用户输入信息,从而盗取用户的账号和密码等敏感信息,更甚者会欺骗用户进行金钱交易。

可能产生漏洞的函数

redirect
redirect_to
redirect_url
url
jump
jump_to
target
to
link
linkto
domain

漏洞检测

1.修改URL参数中合法的URL为非法URL,然后查看是否能正常跳转或者响应是否包含了任意的构造URL。

2.查看前端代码,寻找跳转连接参数,构造连接请求。构造案例

绕过URL跳转

1.利用问号绕过限制

比如:http://www.aaa.com/acb?Url=http://login.aaa.com
绕过:http://www.aaa.com/acb?Url=http://test.com?login.aaa.com 

跳转到这个test.com域名下,这个域名是我想要跳转的任意域名,而后面的它自身域名一定要带上,不带上就无法辅助用问号?这个特性来跳转到指定域名了,而跳转后,问号和问号后面的内容会变为这样:http://www.test.com/?login.aaa.com

2.利用反斜杠和正斜杠绕过限制

比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 
绕过:
一个反斜杠绕过方法
1)http://www.aaa.com/acb?Url=http://test.com\login.aaa.com
两个反斜杠绕过方法
2)http://www.aaa.com/acb?Url=http://test.com\\login.aaa.com
一个反斜杠一个点绕过方法
3)http://www.aaa.com/acb?Url=http://test.com\.login.aaa.com

3.利用@绕过URL限制

用这方法在火狐里进行跳转,会有弹窗提示,在其它游览器则没有。

如:http://www.aaa.com/acb?Url=http://login.aaa.com@test.com  

后面的test.com就是要跳转到的域名,前面的域名都是用来辅助以绕过限制的

4.利用#号绕过

如:http://www.aaa.com/acb?Url=http://test.com#login.aaa.com

5.利用白名单缺陷绕过

如:http://www.aaa.com/acb?Url=http://login.aaa.com
这个login.aaa.com也可以改成aaa.com同样可以跳转,因为白名单里只要有包含这个域名就直接成功跳转。
那么当我在这个域名前面加上如testaaa.com,白名单里会检查是否包含aaa.com这个域名,
包含,然后直接跳转,而并没有检查这个域名的整个信息,然后可以利用这个问题,直接注册一个testaaa.com这个域名就可以利用这个跳转。

6.多重验证&跳转绕过限制

现在很多网站都有多重验证,比如你登陆账户后会出现另一个验证页面,输入手机验证码进行验证,此时这上面的URL很可能存在任意跳转的问题。

比如http://www.aaa.com/acb?Url=http://login.aaa.com/acb?url=http://login.aaa.com。
当然,还有多重的,这个结构的多重跳转你修改最后面的URL就可以达到任意URL跳转,中间的URL就没必要动了。

7.点击触发达到绕过URL跳转限制

如:http://www.aaa.com/acb?Url=http://test.com。
你直接修改了后面为任意URL,但是还是停留在原地,似乎没什么问题,但是,当你输入账号和密码后点击登陆按钮后,就会触发跳转,
当然,这个账户和密码不一定要对的,随便都可以,但得视系统而定吧。比如你修改了域名,然后点击登陆,登陆成功后便可触发跳转,这也是一个比较隐蔽的绕过URL限制的跳转。

8.POST参数中的URL跳转

当你填什么表格或者需要填写什么的,当你上传图片,点击下一步的时候,
通常下一步就是预览你填写的信息,最后才是提交,当你上传了图片后点击下一步抓包,
如果过滤不严,你会看到图片的完整地址包含在POST参数里,你就可以直接修改这个地址为任意URL,
然后到达下一步,这时是确定信息也就是预览自己填写的信息的正确还是不正确,由于你刚刚修改了图片地址,
这里是没有显示出来的,图像会是一个小XX,当点击图片右键选择查看图像时,就会触发URL跳转问题,其实这个也可以利用来进行钓鱼,钓后台审核员的信息

9.利用xip.io绕过

请求是http://www.127.0.0.1.xip.io 这个绕过是在SSRF场景中的绕过,
比如SSRF你要读取内网地址,一般都做了限制,可以尝试用这方法进行绕过限制,从而访问到内网。
另外一点,URL跳转涉及的安全问题大家常见的就是钓鱼,那么利用这个思路也可达成一个钓鱼问题,
如,http://www.qq.com.220.181.57.217.xip.io 当你访问qq这个域名时,其实这个链接已经被解析到后面这个ip地址上了,那么实际访问的就是后面这个IP地址。

防御方法

1)确定传递URL参数的引入来源,保证URL的有效性,避免恶意用户自己生成的链接

2)保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。

3)服务端做好域名白名单或跳转白名单,只对合法的URL进行跳转

参考文章

https://www.cnblogs.com/happystudyhuan/p/11767395.html

https://www.freesion.com/article/3474174576/

posted @ 2022-05-07 16:56  九天揽月丶  阅读(767)  评论(0编辑  收藏  举报