草庐IT

URL跳转漏洞

山兔1 2024-05-11 原文

URL重定向=url跳转漏洞
http://www.zhenggui.com/
http://www.zhengguilcom?url=1
一般看到这里我们会去测试sql注入漏洞,但是除了sql注入漏洞,我们还可以去测试url跳转漏洞
http://www.zhengguilcom?url=http://www.xxx.com
访问: http://www.zhengguilcom?url=http://www.xxx.com 直接就会跳转到http://www.xxx.com
这就是URL漏洞的展现形态和他最初的思路
我们在学漏洞的时候,最关心的就是漏洞这么挖,以及这个漏洞怎么利用才能造成危害
一般利用点
CRLF漏洞
在数据包里面修改成GET xxx/xxx?url=http://www.xxx.com发送,然后去看返红包里面有没有302的状态码进行跳转,返红包的头部有没有换行,有的话就存在crlf漏洞
302跳转: 即设置HTTP响应头Locatioin: url,如果ur包含了CRLF (回车换行),就可能隔断了http响应头,使得后面部分落到了http body,从而跳转到构造的网址。

http://www.xxx.com/index.php\r\n

URL跳转漏洞经常出现在登录和注册页面或者在功能处,还有一些用户分享、收藏内容过后跳转到下一步等等
注册登录跳转: 很多登录界面的网址后面会跟一个URL参数,引导我们登录成功后跳转到相应界面,当被我们利用时,则登录成功后可以跳转到我们指定的恶意网站。
http://www.xxx.com/login.php?url=www.hacker.com
http://www.xxx.com/regist.php?url=http://www.google.com
打开连接功能: 很多网站有个功能是打开外部连接,当输入要访问的网址时,会先将网址添加到url上,然后进行跳转,利用添加上url的网址可以进行引导到任意网址
http://www.xxx.com/admin.php?jump=www.baidu.com
像企查查和知乎这种的,你如果输入一个站位的站,他就会提醒你即将跳转到外部连接是否继续,可能有一定的风险,像有这种提示就说明了人家是做了相关的防护,如果说没有相关提示的话,就是一个漏洞
利用姿势
1.正常在测试网站时候,当发现url中存在以下参数,可以进行url跳转测试
1 redirect、redirect_to、redirect_url
2 jump、jump_to、target、domain
3 url、src、to.link、linkto

5公司:A
6a_url
当然这肯定不全,因为每个开发的公司都有自己一套开发的思想的,他可能命名不是那么标准
2.直接获取了用户输入的参数,直接就进行了跳转,没有做任何白名单和黑名单的限制,所以就会产生跳转

1 <?php
2 $url=$_GET['url"];
3 header("Location: $url");
4?>

可以直接拼接上我们要跳转的网址
1 www.xxx.com/admin.php?url=http://www.baidu.com
因为代码写的不对,没有做任何防护就会出现直接跳过去
具体代码怎么写修复的,百度一下就可以了,已经有成型的标准了
3.当存在限制时 这个限制一般是限制只能跳转本网的网址或规定的网址比如www.xxx.com开头的网址

1<?php
2 $url=$_GET['url'];
3 if(preg_match(/^www\.xxx\.com/,$url)){header("Location: $url");
4 }else(echo "error";
5 }
6 ?>

这样则只能跳转到www.xxx.com开头的网址,这个时候就需要一些绕过了。但这里存在几个url构造利用,能跳转到baidu

1 www.xxx.com:80@baidu.com
2 www.xxx.com:80@baidu.com:80
3 www.xxx.com#@baidu.com
4 www.xxx.com @baidu.com
5 www.xxx.com @baidu.com:80
6 www.xxx.com\www.baidu.com
7 www.xxx.com\\www.baidu.com
8 www.xxx.com?www.baidu.com
9 www.xxx.com#www.baidu.com
11 http://www.xxx.com?url=http://www.bd.com
12 绕过:
13 http://www.xxx.com?url=http://www.bd.com@xxx.com

这有篇非常详细的url原理讲解
主要是在网址构造之间对特殊符号FUZZ测试进行自由组合";“、”/“、”“、”=“、”&“、”?“、”:“、”@“、”."
修复
1.限制Referer Referer是header字段,当浏览器向服务器发送请求时,通常会带上Referer,服务器判断是从哪个页面转过来的,然后限制Referer将能保证跳转URL的有效性,避免攻击者生成自己的恶意跳转链接;
2.加入有效性验证Token token验证能有效阻断很多漏洞的利用,保证所有生成的链接都来自可信任的网址,在生成的链接 加入随机不可控的Token,然后对生成的链接进行校验。
高端利用
1、构造xss漏洞 ?url=javascript;alert(1)
2、构造实现url跳转结合钓鱼或者跳转获取到认证
3、获取用户token,cookie
4、meta标签,通过设置meta标签内的refresh属性进行跳转: http://127.0.0.1/1.php?url=1;http://baidu.com" http-equiv="refresh&fsearch=yes
可以让有URL跳转漏洞的网站自动进行跳转
5、经常有的
登录: http://test.com/login/?url=http://baidu.com
退出: http://test.com/logout/?url=http://baidu.com

网络安全是做保障的,开发是做业务的,在甲方安全部门是花钱的

有关URL跳转漏洞的更多相关文章

  1. ruby-on-rails - rails : save file from URL and save it to Amazon S3 - 2

    从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex

  2. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  3. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  4. ruby-on-rails - 如何生成传递一些自定义参数的 `link_to` URL? - 2

    我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些

  5. ruby - Rack:如何将 URL 存储为变量? - 2

    我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.

  6. Tomcat AJP 文件包含漏洞(CVE-2020-1938) - 2

    目录1.漏洞简介2、AJP13协议介绍Tomcat主要有两大功能:3.Tomcat远程文件包含漏洞分析4.漏洞复现 5、漏洞分析6.RCE实现的原理1.漏洞简介2020年2月20日,公开CNVD的漏洞公告中发现ApacheTomcat文件包含漏洞(CVE-2020-1938)。ApacheTomcat是Apache开源组织开发的用于处理HTTP服务的项目。ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件。该漏洞是一个单独的文件包含漏洞,依赖于Tomcat的AJP(定向包协议)。AJP自身存在一定缺陷,导致存在可控

  7. ruby-on-rails - Rails - 使用/自定义 URL : '/dashboard' 指定根路径 - 2

    如何使此根路径转到:“/dashboard”而不仅仅是http://example.com?root:to=>'dashboard#index',:constraints=>lambda{|req|!req.session[:user_id].blank?} 最佳答案 您可以通过以下方式实现:root:to=>redirect('/dashboard')match'/dashboard',:to=>"dashboard#index",:constraints=>lambda{|req|!req.session[:user_id].b

  8. ruby-on-rails - 使用 Dragonfly 从 URL 分配图像 - 2

    我正在使用Dragonfly在Rails3.1应用程序上处理图像。我正在努力通过url将图像分配给模型。我有一个很好的表格:{:multipart=>true}do|f|%>RemovePicture?Dragonfly的文档指出:Dragonfly提供了一个直接从url分配的访问器:@album.cover_image_url='http://some.url/file.jpg'但是当我在控制台中尝试时:=>#ruby-1.9.2-p290>picture.image_url="http://i.imgur.com/QQiMz.jpg"=>"http://i.imgur.com/QQ

  9. ruby 正则表达式 : replace double slashes in URL - 2

    除了协议(protocol)定义中的斜杠('http[s]://'、'ftp://'等)之外,我想替换URL中的所有多个斜杠。我该怎么做?此代码无一异常(exception)地替换:url.gsub(/\/\/+/,'/') 最佳答案 您只需排除任何以:开头的匹配项url.gsub(/([^:])\/\//,'\1/') 关于ruby正则表达式:replacedoubleslashesinURL,我们在StackOverflow上找到一个类似的问题: http

  10. ruby - 使用 ruby​​ 从文本中删除 url - 2

    给定一个文本,我想删除url部分并保留其他文本。例子:'blablabla...blablabla...http://bit.ly/someuriblablabla...'成为'blablabla...blablabla...blablabla...'是否有任何ruby​​内置方法可以有效地执行此操作? 最佳答案 尝试使用正则表达式:(?:f|ht)tps?:\/[^\s]+ 关于ruby-使用ruby​​从文本中删除url,我们在StackOverflow上找到一个类似的问题:

随机推荐