URL重定向漏洞及跳转漏洞

URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。

访问 http://www.abc.com?url=http://www.xxx.com 直接跳转到 http://www.xxx.com 说明存在URL重定向漏洞

利用位置

302跳转: 设置HTTP响应头Location:url ,如果url包含了CRLF(回车换行),就可能隔断了http响应头,使得后面部门落到http body,从而跳转到构造的网址。

注册登录跳转: 很多登录界面网址后面会跟一个URL参数,引导我们登录成功后跳转到相应界面,当被利用时,则登录成功后可以跳转到我们指定的恶意网址。

http://www.xxx.com/login.php?url=www.baidu.com
http://www.xxx.com/regist.php?url=www.baidu.com

打开链接功能: 很多网站有个功能是打开外部链接,当输入要访问的网址时,会先将网址添加到url上,然后进行跳转,利用添加上url的网址可以进行引导到任意网址。

用户分享、收藏内容等
构造有危害的钓鱼页面,通过这个 url 进行跳转。192.168.0.103/06/vul/urlredirect/urlredirect.php?url=http://www.hacker.com安全意识低用户会误以为是当前信任页面发出来的连接,生成的链接,用户访问后,可能会产生欺诈行为,同时由于 qq,淘宝旺旺等基础 url 过滤,但是也是基于白名单的方式放行,所以导入 url 可以在这些软件上大范围传播,从而产生很大的危害。

利用方式

构造XSS漏洞?url=javascript:alert(1)
构造实现url跳转结合钓鱼或者跳转获取认证
获取用户token,cookie
meta标签,通过设置meta标签内的refresh属性进行跳转:http://127.0.0.1/1.php?url=1;http://baidu.com"http-equiv="refresh&fsearch=yes
登录退出位置:

http://www.xxx.com/login/?url=http://baidu.com
http://www.xxx.com/login/?url=http://baidu.com

防御方式

我们需要对传入的 URL 做有效性的认证,保证该 URL 来自于正确的地方,限制的方式同防止 CSRF 一样可以包括:
1.referer 的限制
如果确定传递 URL 参数进入的来源,我们可以通过该方式实现安全限制,保证该 URL 的有效性,避免恶意用户自己生成跳转链接
2.加入有效性验证 Token
我们保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的 Token 对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。

绕过方式

Fuzz构造利用:

www.xxx.com:80@baidu.com
www.xxx.com:80@baidu.com:80
www.xxx.com#@baidu.com
www.xxx.com @baidu.com
www.xxx.com @baidu.com:80
www.xxx .com\www.baidu.com
www.xxx.com\\www.baidu.com
www.xxx.com?www.baidu.com
www.xxx.com#www.baidu.com

主要在网址之间构造特殊字符进行FUZZ测试:; / = & ? : @ .

posted @   KAKSKY  阅读(471)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示