0x01 url任意跳转

  未做任何限制,传入任何网址即可进行跳转。

漏洞示例代码:

<?php
$redirect_url = $_GET['url'];
header("Location: " . $redirect_url);
exit;
?>

Payload:?url=http://www.baidu.com,即可跳转到百度首页

0x02 编码解码

  之前黑盒测试遇到过一个案例,感觉有点意思,写个demo复现一下

漏洞示例代码:

<?php
$url = base64_decode($_GET['url']);
header("Location: " . $url);
?>

将url进行base64编码,参数传递到服务端解码,然后进行url跳转。

http://www.baidu.com   base64编码后   aHR0cDovL3d3dy5iYWlkdS5jb20=

Paylod:?url=aHR0cDovL3d3dy5iYWlkdS5jb20=

0x03 白名单限制

0x04 绕过姿势

利用默认协议

?url=\\www.baidu.com
?url=\/www.baidu.com
?url=\\\\www.baidu.com 等价于:?url=http://www.baidu.com 前缀式

    利用问号?: ?url=http://www.evil.com?www.aaa.com

    利用井号#:  http://www.aaa.com?returnUrl=http://www.evil.com#www.aaa.com

    其他形式:

      ?url=http://www.baidu.com\aaa.com

      ?url=http://www.baidu.com\\aaa.com

 后缀式

    利用@符号:?url=http://www.aaa.com@www.evil.com

    其他形式: http://www.aaa.com.evil.com

其他思路: 使用IP地址、IPv6地址、更换ftp、gopher协议


绕过案例:

白名单限制

?redirect_uri=http://www.baidu.com

利用问号绕过限制

?redirect_uri=http://www.baidu.com

尝试进行跳转到其他网站时发现做了白名单限制,非QQ域名禁止跳转,会报错说跳转链接非法

?redirect_uri=http://www.baidu.com

?redirect_uri=http://www.qq.com?http://www.baidu.com

?redirect_uri=http://www.baidu.com?&http://www.qq.com

?redirect_uri=http://www.baidu.com/test.html?&http://www.qq.com

?redirect_uri=http://www.baidu.com\\test.html?&http://www.qq.com

在代码中判断是否为目标域名,但开发小哥哥们喜欢用字符串包含来判断

http://www.aaa.com?returnUrl=http://www.aaa.com.evil.com

http://www.aaa.com?returnUrl=http://www.evil.com/www.aaa.com

http://www.aaa.com?returnUrl=http://www.xxxaaa.com

若再配合URL的各种特性符号,绕过姿势可是多种多样。比如

利用反斜线:

http://www.aaa.com?returnUrl=http://www.evil.comwww.aaa.com

http://www.aaa.com?returnUrl=http://www.evil.com\www.aaa.com

多次跳转,即aaa公司信任ccc公司,ccc公司同样存在漏洞或者提供跳转服务:

http://www.aaa.com?returnUrl=http://www.ccc.com?jumpto=http://www.evil.com

实际挖掘过程中还可以将上述方法混合使用,甚至使用URL编码、ip地址替代域名等手段。

参考链接:

web渗透基础案例——URL跳转绕过腾讯限制进行跳转

http://www.apgy.club/temp/url.html

分享几个绕过URL跳转限制的思路

https://www.anquanke.com/post/id/94377

PHP代码审计笔记--URL跳转漏洞的更多相关文章

  1. url跳转漏洞(1)

    转载 https://landgrey.me/open-redirect-bypass/ 0x00:漏洞场景 URL跳转漏洞的出现场景还是很杂的,出现漏洞的原因大概有以下5个: 1. 写代码时没有考虑 ...

  2. Web安全之url跳转漏洞及bypass总结

    0x01 成因 对于URL跳转的实现一般会有几种实现方式: META标签内跳转 javascript跳转 header头跳转 通过以GET或者POST的方式接收将要跳转的URL,然后通过上面的几种方式 ...

  3. URL跳转漏洞

    URL跳转原理: 由于越来越多的需要和其他第三方应用交互,以及在自身应用内部根据不同的逻辑将用户引向到不同的页面,譬如一个典型的登录接口就经常需要在认证成功之后将用户引导到登录之前的页面,整个过程中如 ...

  4. Url跳转漏洞常见

    Url跳转漏洞常见出现点: 1.用户登录.统一身份认证处,认证完后会跳转. 2.用户分享.收藏内容过后,会跳转. 3.跨站点认证.授权后,会跳转. 4.站内点击其它网址链接时,会跳转. Url跳转漏洞 ...

  5. WEB安全番外第一篇--其他所谓的“非主流”漏洞:URL跳转漏洞与参数污染

    一.URL跳转篇: 1.原理:先来看这段代码: <?php if(isset($_GET["url_redircetion_target"])){ $url_redirect ...

  6. Django < 2.0.8 任意URL跳转漏洞(CVE-2018-14574)

    影响版本 Django < 2.0.8 抓包 访问http://192.168.49.2:8000//www.example.com,即可返回是301跳转到//www.example.com

  7. URL重定向及跳转漏洞

    URL跳转漏洞 URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞. 使用场景    现在 Web 登录很多都接入了QQ ...

  8. 安全测试4_客户端的安全漏洞(XSS、CSRF、点击劫持、URL跳转)

    那个fanh前面学习的都是基础,现在开始正式学习下安全的知识,这一章主要讲解客户端常见的安全漏洞. 看到这个不错,给大家记一下: 1.常见的安全事件: 2.XSS(跨站脚本),英文全称:Cross S ...

  9. java代码审计中的一些常见漏洞及其特征函数

    文章来源:https://xz.aliyun.com/t/1633 最近在先知上看到之前有篇关于java代码审计的文章总结的蛮好,记录以下特征函数,方便查阅,同时自己也会将在平时代码审计过程中积累的函 ...

随机推荐

  1. Oracle ref cursor和sys_refcursor

    1. 自定义 ref cursor 和 sys_refcursor; 2. sys_refcursor 做为参数传递结果集; 3. ref cursor 做为参数传递结果集; 1. 自定义 ref c ...

  2. SQL Server默认1433端口修改方法

    SQL Server默认端口1433端口并不是十分的安全,需要将SQL Server默认端口进行更改,在更改之前,让我们先了解一下什么是1433端口. 什么是1433端口 1433端口,是SQL Se ...

  3. Patterns for Asynchronous MVVM Applications: Commands

    Stephen Cleary Download the Code Sample This is the second article in a series on combining async an ...

  4. altium designer中如何添加logo

    在PCB板卡制作完毕,为了彰显自己的成就感,可以在PCB空白区域添加几个logo或者说明性的英文(就不要中文了,中文可能PCB厂家做不了). 上图是笔者喜欢在空白区域加一个个性化的二维码,算作是对自己 ...

  5. ubuntu lapack安装与使用

    https://blog.csdn.net/zouyu1746430162/article/details/53374693 https://blog.csdn.net/mlnotes/article ...

  6. MyGUI 解析

    MyGUI源码还是比较简单的,我们在这里只是简单分析相应控件如何生成,如何渲染. 我们分成三个部分来说明,分别是资源类型,控件生成,控件渲染. 资源类型: ResourceSkin:用于记录各个控件状 ...

  7. Opengl绘制我们的小屋(四)第三人称漫游

    本节内容是在第一人称漫游上完成的,请先了解上文中第一人称漫游的实现. 这一节讲下第三人称漫游是如何实现,第三人称,简单来说,就是在你后面会跟着一台摄像机顺着你拍摄. 先看一下失败的尝试.这个方法是把人 ...

  8. 刚看完了一本关于javascript的书感觉受益匪浅,原来不懂的东西这么多,想问问怎么成为大神?求教!!!!!!

    刚看完了一本关于javascript的书感觉受益匪浅,原来不懂的东西这么多,想问问怎么成为大神?求教!!!!!!

  9. 数据源(HikariCP)

    HikariCP 是一个高性能的 JDBC 连接池组件.下图是性能的比较测试结果: 自从看到了这张图,我就对于我之前一直在使用了 c3p0 产生了深深的怀疑,迫切的期望得到对应的数据来优化我的代码. ...

  10. MyBatis批量增删改的另外一种思路(推荐)

    零.传统拼接SQL语句的弊端 传统上利用Mybatis进行批量操作的方式本质来说是拼接SQL语句,然后交给底层执行,如之前博文而言. 其实这种方式是存在弊端的: 1. SQL语句可能会过长,DB的引擎 ...