文件上传漏洞--Upload-labs--Pass09(在某些版本的靶场里是Pass10)--点+空格+点 绕过

news/发布时间2024/5/16 6:21:56

一、什么是 点+空格+点 绕过

顾名思义,将 test.php 改为 test.php. . ,观察到后缀名php后多出了 点+空格+点。那么 点+空格+点 是如何进行绕过的,在什么情况下可以使用,让我们结合题目讲解。


二、代码审计

1、查看题目源代码上半部分,题目采取黑名单,并且对 Pass05 - Pass07 的题目中所出现的漏洞进行了有效修复,意味着我们不再能够使用 点绕过/空格绕过/大小写绕过了。

2、接着查看源代码下半部分,看起来和前面关卡并无不同,但其实题目源代码做了一个细小的修改,如图。题目将 $img_path中的 $file_ext 换成了 $file_name,就是这个细节,构成了 点+空格+点 漏洞。


三、点 + 空格 + 点 绕过原理

1、上传 test.php. . 文件,源代码的诸条指令开始对其进行操作。

2、首先 deldot() 函数将文件名的最后一个点删除,变为: test.php._ 。 _在这里表示空格。

3、strche() 函数提取最后一个点到字符串末尾的位置,即提取文件后缀名,并赋值给 $file_ext。但是文件最后一个点到末尾的字符串是 空字符,故提取的文件后缀名 $file_ext 也是空字符,这就可以对黑名单进行绕过了。

4、接着解释 $image_path 中的 $file_name 的问题,经过一系列操作后,$file_name 为 test.php,而 $file_ext 为空字符,如果这里写的是 $file_name,最终的 $image_path 应该形如:https://upload-labs/upload/test.php,反之,若写的是 file_ext,最终的 $image_path 应该形如:https://upload-labs/upload/ ,这会导致Apache什么都解析不出来,因为没有文件可以解析,upload 目录下为空。这就是 点+空格+点 绕过的局限性所在。


四、通关操作

1、首先上传 test.php 文件,利用 Burpsuite 进行抓包,在 filename 中添加 点+空格+点 进行黑名单绕过。

2、放包,文件上传成功,在新标签页中打开,将url后多出的 点和空格 删掉,发现代码执行成功。

---通关。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/cOTT/3006.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

MySQL

1 数据库简介 1.1 简介 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。 数据库管理系统(DataBase Management System&…

Mysql数据库主从集群从库Slave因为RelayLog过多过大引起服务器硬盘爆满生产事故实战解决

Mysql数据库主从集群从库slave因为RelayLog过多过大引起从库服务器硬盘爆满生产事故实战解决 一、MySQL数据库主从集群概念 MySQL数据库主从集群是一种高可用性和读写分离的数据库架构,它基于MySQL的复制(Replication)技术来同步数据。在主…

三防平板丨平板终端丨加固平板丨户外勘测应用

随着科技的不断发展,现代勘测业也在不断升级。相较于传统的勘测设备,三防平板在户外勘测中有着广泛的应用。那么,三防平板在户外勘测中究竟有哪些优势呢? 首先,三防平板具备极强的防水、防尘、防摔能力。在野外勘测中&…

【JVM】打破双亲委派机制

📝个人主页:五敷有你 🔥系列专栏:JVM ⛺️稳中求进,晒太阳 打破双亲委派机制 打破双亲委派机制三种方法 自定义类加载器 ClassLoader包含了四个核心方法 //由类加载器子类实现,获取二进制数据调用…

MyBatis框架-缓存

MyBatis缓存 简介 什么是缓存 [ Cache ]? 存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率&#…

超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)

超市售货管理小程序目录 目录 基于微信小程序的超市售货管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)商品管理 (2)出入库管理 (3)公告管理 …

使用向量数据库pinecone构建应用04:混合搜索 Hybrid Search

Building Applications with Vector Databases 下面是这门课的学习笔记:https://www.deeplearning.ai/short-courses/building-applications-vector-databases/ Learn to create six exciting applications of vector databases and implement them using Pinecon…

dell戴尔电脑灵越系列Inspiron 15 3520原厂Win11系统中文版/英文版

Dell戴尔笔记本灵越3520原装出厂Windows11系统包,恢复出厂开箱预装OEM系统 链接:https://pan.baidu.com/s/1mMOAnvXz5NCDO_KImHR5gQ?pwd3nvw 提取码:3nvw 原厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office办公软件、MyD…

VSCode The preLaunchTask ‘C/C++: clang++ 生成活动文件‘ terminated with exit code -1

更改tasks.json文件里面的type为shell 选择g 选择g,然后点回到text.c,按下F5. 得到结果。 文中内容参考: 从零开始手把手教你配置属于你的VS Code_哔哩哔哩_bilibili https://blog.csdn.net/qq_63872647/article/details/128006861

制作商品说明书:如何突出产品特点和优势?

在当今高度竞争的市场环境下,一个优秀的商品说明书不仅是传递产品信息的桥梁,更是凸显产品特点和优势、吸引消费者注意力的关键。那么,如何在商品说明书中有效地突出产品的特点和优势呢?LookLook同学将从以下几个方面进行探讨。 |…

js设计模式:外观模式

作用: 将复杂的功能封装成可以简单调用的方法,无需知道内部的具体逻辑,只需要知道怎么去使用 类似于一把枪,你可以不知道内部的枪机,击发机,复进簧,枪管,导气装置,弹夹是怎么合作配合完成发射和自动填弹,你只需要知道你扣动扳机就能完成这一系列复杂的操作,而那个扳机就是外观…

【C++初阶】系统实现日期类

目录 一.运算符重载实现各个接口 1.小于 (d1)<> 2.等于 (d1d2) 3.小于等于&#xff08;d1<d2&#xff09; 4.大于&#xff08;d1>d2&#xff09; 5.大于等于&#xff08;d1>d2&#xff09; 6.不等于&#xff08;d1!d2&#xff09; 7.日期天数 (1) 算…

【机器学习的主要任务和应用领域】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱 简述概要 了解机器学习的主要任务和应用领域 知识图谱 机器学习的主要任务可以分为监督学习、无监督学习和半监督学习。 监督学习&#xff1a;这是机器学习中最为常见的一类任务&#xff0c;基于已知类…

数据安全治理实践路线(上)

基于以上数据安全治理实践理念&#xff0c;可以按照自顶向下和自底向上相结合的思路推进实践过程。一方面&#xff0c;组织自顶向下,以数据安全战略规划为指导,以规划、建设、运营、优化为主线&#xff0c;围绕构建数据安全治理体系这一核心&#xff0c;从组织架构、制度流程、…

Gitea提交代码自动触发Jenkins构建版本

提交代码自动触发Jenkins构建版本 1. 下载Generic Webhook Trigger 2. 配置Generic Webhook Trigger http://JENKINS_URL/generic-webhook-trigger/invoke?tokenruoyi-ui-8978456465 http://192.168.0.136:8090 为jenkisn地址&#xff0c;/generic-webhook-trigger/invoke?…

0成本部署github前端项目流程

0成本部署github纯前端项目流程 对业内来说应该是一个比较常规的操作&#xff0c;对于新手来说进行过一次应该就很难忘记了&#xff0c;但很多人仍然是不会的&#xff0c;认为部署项目很难&#xff0c;很专业&#xff0c;其实现在由于这些厂商的努力&#xff0c;大众&#xff…

AI论文速读 |【综述】深度学习在多元时间序列插补的应用

论文标题&#xff1a; Deep Learning for Multivariate Time Series Imputation: A Survey 链接&#xff1a;https://arxiv.org/abs/2402.04059 作者&#xff1a;Jun Wang ; Wenjie Du ; Wei Cao ; Keli Zhang ; Wenjia Wang ; Yuxuan Liang ; Qingsong Wen 机构&#xff1a…

day06-股票流水定时多线程采集实现

股票流水定时多线程采集实现 学习目标 1.分析并理解当前股票采集功能存在的问题; 2.理解XXLJOB的使用场景和使用流程; 2.1 掌握xxljob的基本使用流程; 2.2 理解cron表达式; 3.理解xxljob集成到项目的基本流程; 3.1 自定义任务执行器; 3.2 分析国内大盘的开盘周期&#xff0c;…

unsupported format character ‘?‘ (0x95ee)

当出现上面的错误时&#xff0c; 查看自己的查询语句(是否有模糊查询)&#xff0c; 如果有 请用%%(两个百分号)的模糊查询 因为若是中文&#xff0c;请使用两个百分号&#xff08;%%&#xff09;表示&#xff0c;一个百分号不能查出中文

ACE 中的Active Object模式

Active Object 设计模式&#xff1a; 1&#xff09; 根据对象被调用的方式&#xff0c;可以将对象分为两类: Passive Object和Active Object。Passive 和 Object和调用者在同一个线程中&#xff0c;这就是我们通常所用的函数调用。而Active Object和调用在不同的线程中&#xf…
推荐文章