upload-labs:pass-07

2023-11-02

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = $_FILES['upload_file']['name'];
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;
            if (move_uploaded_file($temp_file,$img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '此文件不允许上传';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}

$file_ext = trim($file_ext); //首尾去空

 少了这一句代码:

所以我们可以进行空格绕过。windoes在创建文件时会自动删掉最后的空格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

upload-labs:pass-07 的相关文章

随机推荐

  • 简单教会你如何使用视频ID获取视频详情

    前往注册开通测试 onebound douyin item get video 公共参数 名称 类型 必须 描述 key String 是 调用key 必须以GET方式拼接在URL中 secret String 是 调用密钥 api nam
  • 基于Yolov5的交通标志检测识别设计

    项目介绍 上一篇文章介绍了基于卷积神经网络的交通标志分类识别Python交通标志识别基于卷积神经网络的保姆级教程 Tensorflow 并且最后实现了一个pyqt5的GUI界面 并且还制作了一个简单的Falsk前端网页实现了前后端的一个简单
  • 《网页设计基础——HTML常用标签》

    网页设计基础 HTML常用标签 一 HTML网页框架 格式 二 块级标签 1 标题标签 h1 一级标题 h1 h2 二级标题 h2 h3 三级标题 h3 h4 四级标题 h5 五级标题 h6 六级标题 h6 h5 h4
  • java random.nextint_java Random.nextInt()方法的具体使用

    lic int nextInt int n 该方法的作用是生成一个随机的int值 该值介于 0 n 的区间 也就是0到n之间的随机int值 包含0而不包含n 直接上代码 package org xiaowu random demo impo
  • Android SDK AndroidStudio 国内可用的镜像/代理地址

    http www androiddevtools cn 一站式下载地址 齐全 Android SDK在线更新镜像服务器 1 中国科学院开源协会镜像站地址 IPV4 IPV6 mirrors opencas cn 端口 80 IPV4 IPV
  • Linux QQ 一个命令搞定它

    一个命令就能在linux上用QQ了 在debian下 apt get install gaim 基本上全部聊天软件都能用了 QQ MSN ICQ yahoo通 等等 你如果是用其它linux的话 那就麻烦得多了 要到以下地址找gaim和它的
  • C 标准库 - 《signal.h》

    原文链接 https www runoob com cprogramming c standard library signal h html 简介 signal h 头文件定义了一个变量类型 sig atomic t 两个函数调用和一些宏
  • 数据结构练习题-3栈和队列

    选择题 1 若让元素1 2 3 4 5依次进栈 则出栈次序不可能出现在 种情况 A 5 4 3 2 1 B 2 1 5 4 3 C 4 3 1 2 5 D 2 3 5 4 1 答案 C 解释 栈是后进先出的线性表 不难发现C选项中元素1比元
  • JS删除两个数组对象中id相同的对象

    let arr1 id 1 name json id 2 name book let arr2 id 1 name json age 15 id 2 name book age 16 id 3 name ani age 17 ES6的方法
  • xshell通过跳板机使用隧道和代理连接服务器

    1 建立和跳板机的连接 主机和端口为跳板机的ip和端口 2 使用publicKey认证 3 通过隧道建立和目标主机的连接 源主机为localhost 侦听端口任意填不和本地端口冲突即可 目标主机和端口为要访问的主机端口 4 使用代理 加快本
  • [完美解决]当前不会命中断点。还没有为该文档加载任何符号。

    原文地址 http www cnblogs com furenjun archive 2011 05 31 2064287 html 概述 在调试SL项目 我重装了电脑 项目也是重新配置的 后来在调试的时候发现断点进不去 折腾了两个小时 将
  • vue自定义指令v-loading

    elementUI或者antdesign上的loading拿来就用简单无脑 以前我也是一直在用UI框架自带的loading 后来用的发现好呆板 一点也不炫酷 于是就自定义了 废话不说了直接看效果图 1 创建文件 1 在 src目录下创建一个
  • 学习笔记:区块链概念入门

    本文是100天区块链学习计划的第二篇学习笔记 其实就是按照阮一峰的网络日志 区块链入门教程的讲解进行的简单梳理 也是时间有点紧张的原因 相比于上一篇SHA256算法原理详解 个人感觉质量和原创程度明显下降 待对区块链有了更深的理解后 我会回
  • 【cuda大师班】p12 主机和设备之间的数据传递

    一 主机和设备之间的数据传递 1 1 基本流程框图 1 2 数据传递函数 在主机和设备之间必须显式的传递数据 1 3 代码 使用h 表示某个变量是主机变量 使用d 表示某个变量是主机变量 include cuda runtime h inc
  • ugui实现listview效果

    我们今天要实现listview的效果 首先看下ui结构 根节点是画布 Store节点只是为了固定锚点 抛开背景和标题 核心部分只有ScrollRect ViewPoint Slots Scrollbar ScrollRect是滑动布局 co
  • C++ Programming/RTTI

    原文地址 http en wikibooks org wiki C 2B 2B Programming RTTI Run Time Type Information RTTI RTTI refers to the ability of th
  • Flutter原理与美团的实践

    Flutter是Google开发的一套全新的跨平台 开源UI框架 支持iOS Android系统开发 并且是未来新操作系统Fuchsia的默认开发套件 自从2017年5月发布第一个版本以来 目前Flutter已经发布了近60个版本 并且在2
  • Python- 关于重复字段的一些统计

    问题场景 1 统计dataframe中某两个 多个 字段作为一个整体在dataframe中重复的次数 gt 得到 gt 2 获取某一字段重复次数最多的索引 PS 上图中count最大值为3 索引index 为0 3 获取某一字段重复次数最多
  • Java软件开发

    在开发中我们使用比较多的集合就是List Set和Map了 并且我们也知道大部分用的基本上都是ArrayList LinkedList HashMap HashSet或者TreeSet这几个集合 但是我们在学习使用它们的时候都知道它们这几个
  • upload-labs:pass-07

    is upload false msg null if isset POST submit if file exists UPLOAD PATH deny ext array php php5 php4 php3 php2 html htm