当前位置: 首页 > backend >正文

Webug4.0靶场通关笔记21- 第26关URL不安全跳转

目录

一、URL不安全跳转

1、渗透原理

2、发生场景

二、URL跳转渗透实战

1、打开靶场26关

2、代码审计

3、元素修改渗透

4、手动修改URL地址渗透

三、防御方法


本文通过《webug4靶场第26关 URL不安全跳转》来进行URL重定向攻击渗透实战。

一、URL不安全跳转

1、渗透原理

攻击者通过传入的URL参数,网站未进行检查或过滤不严,导致跳转到恶意网站

URL重定向不安全跳转(URL任意跳转)通常是由于网站信任了用户的输入导致恶意攻击,利用url重定向主要用来钓鱼,比如URL跳转中最常见的跳转在登陆口,支付口,也就是一旦登陆将会跳转任意自己构造的网站,如果设置成自己的url则会造成钓鱼,浅析危害。

  • 正常情况下,Web 应用程序会根据用户的操作或业务逻辑,将用户重定向到合法的目标 URL。例如,用户登录成功后,系统会将用户重定向到其个人主页。
  • 然而,当存在 URL 重定向漏_洞时,攻击者可以通过修改重定向参数的值,将用户重定向到攻击者指定的任意 URL。这可能是一个钓鱼网站,用于骗取用户的敏感信息,如用户名、密码、银行卡号等;也可能是一个包含恶意软件的网站,用于感染用户的设备;或者是用于执行其他类型的攻击,如跨站脚本攻击(XSS)等。

2、发生场景

(1) 登陆跳转是最常见的跳转类型,认证完后会跳转,所以在登陆的时候建议多观察url参数
(2) 用户分享、收藏内容过后,会跳转
(3) 跨站点认证、授权后,会跳转
(4) 站内点击其它网址链接时,会跳转
(5) 在一些用户交互页面也会出现跳转,如请填写对客服评价,评价成功跳转主页,填写问卷,等等业务,注意观察url。
(6) 业务完成后跳转这可以归结为一类跳转,比如修改密码,修改完成后跳转登陆页面,绑定银行卡,绑定成功后返回银行卡充值等页面,或者说给定一个链接办理VIP,但是你需要认证身份才能访问这个业务,这个时候通常会给定一个链接,认证之后跳转到刚刚要办理VIP的页面。

二、URL跳转渗透实战

1、打开靶场26关

注意网站的右上角,接下来点击此处

http://192.168.71.1/webug4/control/more/url_redirect.php

点击红框处,如下所示弹出baidu网址

接下来点击百度

http://192.168.71.1/webug4/control/more/url_redirect.php?url=https://www.baidu.com

此时跳到百度网址

2、代码审计

如下所示传入的参数为URL,并执行header("Location: {$url}");操作,这里并未对url进行过滤。

<?phprequire_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}if (isset($_GET["url"])) {if (!empty($_GET["url"])) {$url = $_GET['url'];header("Location: {$url}");}
}
require_once TPMELATE."/url_redirect.html";

3、元素修改渗透

在第27关靶场后,点击主页右上角后进入如下页面。此时鼠标放到页面中间的百度处,右键鼠标选择元素,如下所示在查看器中可以看到href的url地址

如下所示,此时URL的信息为

<a href="?url=https://www.baidu.com">百度</a>

将其修改为腾讯,并将网址url改为https://www.qq.com,如下所示

​<a href="?url=https://www.qq.com">腾讯</a>

修改后页面如下所示

 此时点击腾讯,跳到了qq的腾讯主页

4、手动修改URL地址渗透

任意修改url可以造成url跳转:如www.qq.com

192.168.71.1/webug4/control/more/url_redirect.php?url=https://www.qq.com

如下所示跳转成功

三、防御方法

  • 严格验证目标 URL:在进行重定向之前,对目标 URL 进行严格的验证,确保其属于合法的域名和路径范围。可以使用白名单机制,只允许重定向到预先定义好的合法 URL 列表中地址。
  • 对重定向参数进行编码和过滤:对重定向参数进行编码,防止攻击者通过修改参数值来注入恶意 URL。同时,对参数进行过滤,去除任何可能包含恶意代码或非法字符的内容。
  • 避免使用用户可控的重定向:尽量减少使用用户可以直接控制的重定向功能。如果必须使用,要对用户输入进行严格的限制和验证,避免用户输入任意的 URL。
  • 实施安全的重定向策略:采用安全的重定向方式,如使用服务器端的重定向函数,而不是通过客户端的 JavaScript 进行重定向。这样可以减少攻击者利用客户端脚本进行攻击的可能性。
  • 进行安全测试:在应用程序的开发和测试阶段,进行全面的安全测试,包括对 URL 重定向功能的测试,以发现和修复潜在的漏_洞。
http://www.xdnf.cn/news/4663.html

相关文章:

  • 【Ubuntu】Netplan静态网络配置
  • 【ArcGIS技巧】用地块生成界址点去重、顺时针编号挂接DKBM属性
  • 四、Hadoop 2.X vs 3.X:特性、架构与性能全解析
  • 趣味编程:爱心
  • 昆仑万维财报解读:AI商业化卷王
  • CF每日5题
  • 《数据结构初阶》【链式二叉树】
  • 【时时三省】(C语言基础)怎样定义和引用二维数组
  • 数字孪生医疗:构建患者特异性数字孪生体路径探析
  • 【NLP 71、常见大模型的模型结构对比】
  • 缓存套餐-01.Spring Cache入门案例
  • 阿里云 golang 一面
  • 【开源】Python打造高效剪贴板历史管理器:实现跨平台生产力工具
  • 使用 Vite 创建 Vue 3 项目并手动配置路由的完整步骤
  • 如何通过服务主体获取 Azure 凭据
  • Ansible 流程控制
  • MySQL的索引和事务
  • @AutoConfigureBefore功能简介-笔记
  • ideal创建Springboot项目(Maven,yml)
  • 在Git历史中移除现有的Commit
  • Python 异常处理与文件 IO 操作:构建健壮的数据处理体系(3/10)
  • 高低比率策略
  • 天选5Pro(锐龙版)设备声音、显卡消失等问题完整解决记录
  • 表达式求值(算法题)
  • CMU-15445(3)——PROJECT#1-BufferPoolManager-Task#1
  • 【MySQL】存储引擎 - CSV详解
  • C++ stl中的string的相关用法
  • 【人工智能agent】--dify通过mcp协议调用工具
  • HR新战场:构建AI战略时代的认知分工与生态化人才供应链
  • 嵌入式C进阶路线指南