前言:

介绍:

博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。

殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。

擅长:对于技术、工具、漏洞原理、黑产打击的研究。

C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。


导读:

面向读者:对于网络安全方面的学者。

本文知识点(读者自测):

(1)查找并利用开放式重定向(√)


目录

开放式重定向漏洞

1.1、简介:

1.2、查找并利用开放式重定向漏洞

1.3、过程1:

1.4、过程2:

1.5、利用:

阻止绝对URL

附加绝对前缀

防止开放式重定向漏洞


开放式重定向漏洞

1.1、简介:

1、如果应用程序提取用户可控制的输入并使用这个数据执行重定向,指示用户的浏览器访问不同于用户所请求的URL,这时就会导致开放重定向油洞。相比于可执行大量恶意操作的跨站点脚本漏洞,攻击者通常对这些漏洞不太感兴趣,攻击者主要利用开放式重定向漏洞实施钓鱼攻击,诱使受害者访问欺骗性Web站点并输入敏感信息,对潜在的受害者而言,重定向漏洞提点了攻击者的可信度因为它允许攻击者创建一个指向他所针对的可信Web站点的URL,因此更具有说服力,但任何访问这个URL的用户将被悄悄重定向到攻击者控制的Web站点。


2、现实世界中的大多数钓鱼攻击都使用其他技巧来获得不受所针对的应用程序控制的可信度。这类技巧包括注册类似的域名、使用官方形式的子域,以及在HTML电子邮件中在定位文本与链接的目标URL之间造成不匹配。研究表明,多数用户都无法或不太可能基于URL结构作出安全决策。因此典型的开放式项定向漏洞对钓鱼攻击者而言并无多大价值


3、开放式重定向漏洞一直被攻击者以相对良性的方式加以利用,用于实施“瑞克摇摆"攻击。在这种攻击中,受害者在不知情的情况下被重定向到视频中

1.2、查找并利用开放式重定向漏洞

查找重定向漏洞的第一步是确定应用程序中的所有重定向,应用程序可以通过几种方式使用户的浏览器重定向到不同的URL


1、HTTP重定向使用一条状态码为3xx的消息与一个指定重定向目标的Location消息头

————

2、HTTPRefresh消息头可在固定时间间隔后使用任意URL重新加载某个页面,该间隔可以为零,也就是能立即触发重定向

————

3、HTML<meta>标签可复制任何HTTP消息头的行为,因此可用于建立重定向

————

4、JavaScript中的各种API可用于将浏览器重定向到任意URL

1.3、过程1:

1、确定应用程序中使用重定向的所有位置。

————

2、要确定所有重定向,一个有效的方法是使用拦截代理服务器浏览应用程序,并监控访问页面请求(与其他资源,如图像、样式表、脚本文件等不同)

————

3、如果一个导航操作导致了几个连续请求,应分析它使用什么方法进行重定向。


绝大多数的重定向都不受用户控制,如在典型的登录机制中,向/login.jsp提交有效的证书将返回一个指向/myhome.jsp的HTTP重定向,这时重定向的目标始终相同,因此不会受到任何重定向漏洞的影响。

但在有些情况下,用户提交的数据以某种方式用于设置重定向的目标。一个常见的例子是应用程序强制使会话已经终止的用户返回登录页面,然后在用户重新成功通过验证后将他们重定向到最初的URL。如果遇到这种行为,就表明应用程序可能易于受到重定向攻击,因此应当对这种行为进行深入分析,以确定它是否可被攻击者利用。

1.4、过程2:

1、如果用户数据在包含绝对URL的重定向中进行处理,则应修改URL中的域名,并测试应用程序是否将用户重定向到另一个域。


2、如果所处理的用户数据包含相对URL,应将此URL修改为指向另一个域的绝对URL,并测试应用程序是否将用户重定向到这个域


3、无论是哪一种情况, 如果有以下行为,那么应用程序肯定容易受到重定向攻击:

GET /updates/8/?redir=http://xxx.com/ HTTP/1.1

Host:

HTTP/1.1 302 Object moved

Loation:http://xxx.com

1.5、利用:

1、如果应用程序使用可由用户控制的数据指定框架的目标URL,这时会发生一种与重定向并非完全相同但相似现象,如果可以构建一个URL,将外部URL的内容加载到子框架中,就可以相当隐秘地实施重定向攻击。这时可以使用其他内容仅替换应用程序的部分界面,并使浏览器地址栏中的域保持不变

————

2、以下情况很常见:用户控制的数据用于设置重定向的目标,但却被应用程序以某种方式过滤或净化掉, 以阻止重定向攻击,这时并没有办法确定应用程序是否易于受到攻击; 因此,接下来应该探查应用程序采用的防御机制,确定是否能够避开它们以执行任意重定向。通常会遇到以下两种防御尝试阻止绝对URL、附加一个特殊的绝对URL前缀


阻止绝对URL

1、应用程序可能会检查用户提交的字符串是否以http://开头,如果是就阻止该请求,这时使用下面的技巧可以成功创建一个指向外部Web站点的重定向(第三行开头有空格)

HtTp://xx.com

%00http://xx.com

http://xx.com

//xx.com

%68%74%74%70%3a%2f%2fxx.com

%2568%2S74%2574%2570%253a%252f%252fxxx.com

https://xx.com

http:\\xx.ccom

http:///xx.com

————

2、应用程序可能会删除http及任何指定的外部域,尝试净化绝对URL。这时使用上面的技巧可以成功进开净化;同时还应测试下面的攻击是否可行

http://http://xx.com

http://xx.com/http://xx.com

hthttp://tp://xx.com

————

3、有时应用程序可能会检验用户提交的字符串是否以指向它自己的域名的绝对URL开头,或是否包含这个URL。这时下面的攻击可能有效:

http://mdsec.net.xx.net

http://xx.net/?http://mdsec.net

http://xx.net/%23http://mdsec.net


附加绝对前缀

1、应用程序可能会在用户提交的字符串前附加一个绝对URL前缀,从而建立重定向的目标

2、这时无法确定应用程序是否易于受到攻击,如果所使用的前缀由http://与应用程序的域名组成, 但在域名后没有斜线字符,那么它就易于受到攻击(如http://xx.net/updates/24/?redir=xx.com)

会重定向到http://xx.net.xx.com

它由攻击者控制,前提是攻击者控制着域xx.com的DNS记录。

————

3、如果绝对URL前缀确实包含斜线字符(/)或服务器上的某个子目录,那么应用程序可能不会受到针对外部域的顶定向攻击。这时攻击者最多只能构建一个URL,将用户煎定向到同一应用程序中的另一个URL。通常这种攻击并不能取得任何成果,因为如果攻击者能够诱使用户访问应用程序中的一个URL,那么他大概也只能向他们直接传送另一个URL

————

4、如果使用从DOM中查询数据的客户端JavaScript实现重定向,则负责执行重定向与相关确认的所有代码通常将在客户端上可见。因此应仔细检查这些代码,确定它如何将用户控制的数据合并到URL中,以及它是否执行了任何确认,是否有什么办法可以避开确认。注意,和基于DOM的XSS漏洞一样,在将脚本返回浏览器之前,服务器可能对其执行了其他确认。

JavaScnptAPI可用于执行重定向:

document.location
document.URL
document.open()
window.location.href
window.navigate()
window.open()

防止开放式重定向漏洞

绝不将用户提交的数据合并到重定向目标中,是避免开放式重定向漏洞的最有效方法。开发者这样做出于各种原因,但通常我们都可以找到替代办法。例如,用户界面中常常包含一组链接,每个链接指向一个重定向页面,并以目标URL为参数。这时可能的替代方法如下

————

1、从应用程序中删除重定向页面,用直接指向相关目标URL的链接替代指向重定向页面的链接

2、建立一个包含所有有效重定向URL的列表,不以参数的形式向重定向页面传送目标URL,而是传送这个列表的索引。重定向页面应在它的列表中查询这个索引,并返回一个指向相关URL的重定向


如果重定向页面不可避免地要收到用户提交的输入并将它合并到重定向目标中,应使用以下措施降低重定向攻击的风险

————

1、应用程序应在所有重定向中使用相对URL,重定向页面应严格确认它收到的URL为相对URL 。它应当确保用户提交的URL或者以其后接一个字母的斜线字符开头,或者以一个字母开头,并且在第一个斜线前没有冒号。应拒绝,而不是净化任何其他输入。

2、应用程序应该在所有重定向中使用相对于Web根目录的URL ,在发布重定向之前,重定向页面应在所有用户提交的URL前附加http//youdomainname.com。如果用户提交的URL并不以斜线字符开头, 应在它的前面附加http//youdomainname.com/

3、应用程序应对所有重定向使用绝对URL,重定向页面在发布重定向之前,应确认用户提交的URL以http//youdomainname.com/开头。此外应拒绝任何其他输入

————

和基于DOM的XSS漏洞一样,建议应用程序不要根据DOM数据通过客户端脚本执行重定向,因为这些数据不在服务器的立接控制范围内



网络安全三年之约

First year

掌握各种原理、不断打新的靶场

目标:edusrc、cnvd

主页 | 教育漏洞报告平台 (sjtu.edu.cn)https://src.sjtu.edu.cn/https://www.cnvd.org.cnhttps://www.cnvd.org.cn/


second year

不断学习、提升技术运用技巧,研究各种新平台

开始建立自己的渗透体系

目标:众测平台、企业src应急响应中心

众测平台 URL
漏洞盒子 漏洞盒子 | 互联网安全测试众测平台
火线安全平台 火线安全平台
漏洞银行 BUGBANK 官方网站 | 领先的网络安全漏洞发现品牌 | 开放安全的提出者与倡导者 | 创新的漏洞发现平台
360漏洞众包响应平台 360漏洞云漏洞众包响应平台
补天平台(奇安信) 补天 - 企业和白帽子共赢的漏洞响应平台,帮助企业建立SRC
春秋云测 首页
雷神众测(可信众测,安恒) 雷神众测 - BountyTeam
云众可信(启明星辰) 云众可信 - 互联网安全服务引领者
ALLSEC ALLSEC
360众测 360众测平台
看雪众测(物联网) https://ce.kanxue.com/
CNVD众测平台 网络安全众测平台
工控互联网安全测试平台 CNCERT工业互联网安全测试平台
慢雾(区块链) Submit Bug Bounty - SlowMist Zone - Blockchain Ecosystem Security Zone
平安汇聚 http://isrc.pingan.com/homePage/index
互联网大厂 URL
阿里 https://asrc.alibaba.com/#/
腾讯 https://security.tencent.com/
百度 https://bsrc.baidu.com/v2/#/home
美团 https://security.meituan.com/#/home
360 https://security.360.cn/
网易 https://aq.163.com/
字节跳动 https://security.bytedance.com/
京东 https://security.jd.com/#/
新浪 http://sec.sina.com.cn/
微博 https://wsrc.weibo.com/
搜狗 http://sec.sogou.com/
金山办公 https://security.wps.cn/
有赞 https://src.youzan.com/

Third Year

学习最新的知识,建全自己的渗透体系

目标:参与护网(每一个男孩子心中的梦想)

时间:一般5月面试,6/7月开始(持续2-3周)

分类:国家级护网、省级护网、市级护网、重大节日护网(如:建党、冬奥等)

【web-攻击用户】(9.6.2)其他客户端注入攻击:开放式重定向漏洞相关推荐

  1. sql注入攻击_让你彻底明白sql注入攻击

    点击上方 Java旅途,选择 设为星标 优质文章,每日送达 SQL注入攻击是黑客对数据库进行攻击常用的手段之一,随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于程序员 ...

  2. 【网络安全】——服务端安全(注入攻击、认证与会话管理和访问控制、访问控制、加密算法与随机数、Web框架安全、应用层拒绝服务攻击DDOS)

    这一篇博客记录的是服务端安全应用安全的知识,学习内容来自<白帽子讲Web安全>. ​ 承接自上一篇客户端安全之后,包括注入攻击.认证与会话管理和访问控制.访问控制.加密算法与随机数.Web ...

  3. Web—SQL注入攻击

    文章目录 一.mysql常用语句 二.SQL注入概念 1. 产生原因 2. 攻击分类 三.攻击流程 1. 常用检测语句如何识别SQL注入 2. Mysql注入常用函数 3. 查询数据的核心语法 4. ...

  4. 45-互联网安全架构-Web常用攻击手段之XSS脚本SQL注入攻击

    文章目录 1. 什么是XSS攻击&XSS攻击应用场景 2. XSS脚本攻击原理分析 3. 使用过滤器防御XSS攻击 4. 使用#传递参数防御SQL注入攻击 1. 什么是XSS攻击&XS ...

  5. SRC挖掘---web开放重定向漏洞-2day

    在本章中,我们将学习开放重定向漏洞,不是很深入因为需要与其他漏洞结合起来使用,我们这里先做了解. 开放式重定向漏洞使攻击者能够强制 Web 应用程序重定向到攻击者选择的 URL 什么是开放重定向漏洞? ...

  6. SQL注入攻击以及防护

    在学习.面试过程中,多次接触过SQL注入攻击,今天我们就来好好总结一下吧. SQL注入攻击是黑客对数据库进行攻击的常用手段之一.SQL注入攻击是指提交一段数据库代码,根据程序返回的结果获得某些他想得知 ...

  7. SQL注入攻击及其防范检测技术研究

    2008-12-18  来自:51CTO  作者:陈小兵 本文简要介绍了SQL注入攻击的原理,SQL注入攻击实现过程,并在此基础上给出了一种SQL注入攻击的自动防范模型. 1  SQL注入攻击概述 1 ...

  8. 注入攻击-SQL注入和代码注入

    注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险.实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功.虽然这是最明显的组合关系,但是注入攻击带来的不仅 ...

  9. PHP SQL 注入攻击的技术实现以及预防办法

    最近在折腾 PHP + MYSQL 的编程.了解了一些 PHP SQL 注入攻击的知识,于是写了这篇文章 http://www.xiaohui.com/weekly/20070314.htm,总结一下 ...

最新文章

  1. 谷歌开源文本生成新方法 LaserTagger,直击 seq2seq 效率低、推理慢、控制差三大缺陷!
  2. 略读《大教堂与市集》
  3. 6系A卡笔记本移动版:HD6470/6550/6630/6650/6730/6770M
  4. python扫雷游戏课程设计小组任务计划与分配表_Python开源扫雷游戏由网瘾少年制作,转手后月入18K,附赠所有源文件...
  5. 【零基础学Java】—数组(五)
  6. 错误代码:1120 当前Hsql数据库已被另一线程锁定
  7. 机器学习算法基础4-K-近邻算法、朴素贝叶斯算法、分类模型评估、模型的选择与调优
  8. 旅游后台管理系列——SSM框架Dao层整合
  9. POJ3348 Cows
  10. [每日一氵] mmSeg 报错 StopIteration
  11. 银行卡Bin和Logo
  12. app服务器指向dat文件,appdat-系统爱好者
  13. Intel opreation mode
  14. 个人博客配置SSL安全文件
  15. PAT甲级考纲(最少的时间换尽可能多的分数)
  16. php面向对象--php面向对象ppt
  17. Xcode能编译运行成功,但是模拟器没有任何反应
  18. java日期与时间戳相互转换大全
  19. Visual Studio 2019 卸载干净+下载安装方法 2021-5-7
  20. 3.7 杭电复试题2011

热门文章

  1. Excel中如何快速输入☑和☒
  2. 如何规避海外置业风险,2019必备海外房产投资技巧
  3. Win10自带的SSH服务 scp功能传输文件(linux)
  4. Delphi 2005 失望的尝鲜!
  5. STM32 烧录程序后上电不工作,但调试模式下可正常工作的解决办法
  6. 安卓期末大作业——番茄小说APP
  7. leetcode每日一题1725. 可以形成最大正方形的矩形数目 哈希表存储 到 贪心遍历 优化~
  8. 关于sqlserver远程连接创建后报错小结
  9. 利好:加快发展统一的资本市场
  10. 新概念英语第四册41-48课(转)