什么是重定向,如何实现?真实的漏洞报告是什么样的?(open redirect vulnerabilities)

重定向漏洞(open redirect vulnerabilities)

重定向(redirect)是什么?

当从一个页面(url)自动跳到另一个页面(url)的时候,就发生了重定向。

重定向的发起,可能是从服务端(后端),也可能是客户端(浏览器)。

后端发起重定向,会向客户端发送一个状态码(301、302等),并告诉浏览器要跳转到哪个url。

在这里插入图片描述
例如我在这里引用了一个地址:
https://http.dev/status
如果有一天这个地址(指向该内容的url)变了,但我这里引用的还是老地址,当有人点击的时候,可能找不到(not found),也可能直接跳转到对应的新的地址(所谓的重定向)。

客户端发起的重定向,是由运行在浏览器的代码触发。

两种方法:meta refresh 和 JavaScript redirect(which changes the window’s URL after that code has been run)
在这里插入图片描述

上面两图分别来自
https://www.w3.org/TR/WCAG20-TECHS/H76.html
https://www.w3schools.com/howto/howto_js_redirect_webpage.asp
可能还要插句嘴,上面的两图,是代码内部的大概样子,具体的URL可能不会直接贴在代码里,而是通过参数传递,比如下面真实的报告例子,是通过参数redirect传递的。(最后一个图是URL 解码结果)

重定向能被用来做什么?

phishing (fishing 钓鱼),如果一个重定向的url,竟然可以被控制、改写!那任何一个没有警觉的无辜的人,都有可能被定向到一个恶意的网站,用户看到的内容,可能不是他/她以为的合法的内容!

例子(Example)

在这里插入图片描述

如下连接,SAMPRIT DAS 这个人报告的重定向漏洞:
https://huntr.dev/bounties/c13258a2-30e3-4261-9a3b-2f39c49a8bd6/
真实的报告例子
英文的冒号:,第一次编码 => %3A 在此基础上再次编码 => %253A 第三次编码 => %25253A
(% 编码为%25,解码时,从左到右,前头的%25 解码成%,第二次解码时,前面还有一个%25,还是解码成%,第三次解码时,剩下%3A 解码成 : )
英文的问号 ?,一次编码 %3F
等号 = ,一次编码 %3D
URL解码结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值