PHP代码审计笔记--URL跳转漏洞
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跳转漏洞的更多相关文章
- url跳转漏洞(1)
转载 https://landgrey.me/open-redirect-bypass/ 0x00:漏洞场景 URL跳转漏洞的出现场景还是很杂的,出现漏洞的原因大概有以下5个: 1. 写代码时没有考虑 ...
- Web安全之url跳转漏洞及bypass总结
0x01 成因 对于URL跳转的实现一般会有几种实现方式: META标签内跳转 javascript跳转 header头跳转 通过以GET或者POST的方式接收将要跳转的URL,然后通过上面的几种方式 ...
- URL跳转漏洞
URL跳转原理: 由于越来越多的需要和其他第三方应用交互,以及在自身应用内部根据不同的逻辑将用户引向到不同的页面,譬如一个典型的登录接口就经常需要在认证成功之后将用户引导到登录之前的页面,整个过程中如 ...
- Url跳转漏洞常见
Url跳转漏洞常见出现点: 1.用户登录.统一身份认证处,认证完后会跳转. 2.用户分享.收藏内容过后,会跳转. 3.跨站点认证.授权后,会跳转. 4.站内点击其它网址链接时,会跳转. Url跳转漏洞 ...
- WEB安全番外第一篇--其他所谓的“非主流”漏洞:URL跳转漏洞与参数污染
一.URL跳转篇: 1.原理:先来看这段代码: <?php if(isset($_GET["url_redircetion_target"])){ $url_redirect ...
- 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
- URL重定向及跳转漏洞
URL跳转漏洞 URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞. 使用场景 现在 Web 登录很多都接入了QQ ...
- 安全测试4_客户端的安全漏洞(XSS、CSRF、点击劫持、URL跳转)
那个fanh前面学习的都是基础,现在开始正式学习下安全的知识,这一章主要讲解客户端常见的安全漏洞. 看到这个不错,给大家记一下: 1.常见的安全事件: 2.XSS(跨站脚本),英文全称:Cross S ...
- java代码审计中的一些常见漏洞及其特征函数
文章来源:https://xz.aliyun.com/t/1633 最近在先知上看到之前有篇关于java代码审计的文章总结的蛮好,记录以下特征函数,方便查阅,同时自己也会将在平时代码审计过程中积累的函 ...
随机推荐
- charles系列破解激活办法(最高charles4.2.5都可以激活,亲测可用)
Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4 抓包工具Charles的使用心得 https://www.jians ...
- (笔记)电路设计(十一)之DC/DC电源转换方案设计应用
十大 法则之一:搞懂什么是DC/DC电源以及DC/DC转换电路分类 DC/DC电源电路又称为DC/DC转换电路,其主要功能就是进行输入输出电压转换.一般我们把输入电源电压在72V以内的电压变换过程称为 ...
- WFA 认证 启动 sigma_dut方法
WFA认证需要启动sigma_dut,记录记录一下启动过程. Android O平台命令如下 adb shell svc wifi disable adb shell rmmod wlan adb s ...
- 第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用
第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理 使用IP代理 ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置build_opener ...
- JAVA写代码必须知道的编程工具
Eclipse: 一个开放源代码的.基于Java的可扩展开发平台. NetBeans: 开放源码的Java集成开发环境,适用于各种客户机和Web应用. IntelliJ IDEA: 在代码自动提示.代 ...
- application.properties详解 --springBoot配置文件
本文转载:http://blog.csdn.net/lpfsuperman/article/details/78287265###; # spring boot application.propert ...
- CURL 常用参数
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具. 1.查看响应头信息: -I :显示http response的头信息. [root@l ...
- linux rinetd 端口转发部署
linux下简单好用的工具rinetd,实现端口映射/转发/重定向 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它 ...
- java-信息安全(一)-BASE64,MD5,SHA,HMAC,RIPEMD算法
概述 信息安全基本概念: BASE64 编码格式 Base58 编码 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm, ...
- phd文献阅读日志-博一下学期
博一下学期: 1.week1,2018.2.26 2006-Extreme learning machine: theory and applications 期刊来源:Huang G B, Zhu ...