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

upload-labs关卡记录8

黑名单过滤,同时不能进行双写,大小写,特殊可解析后缀,.htaccess,都不能。点击提示发现:

禁止上传所有可解析后缀,抓包试试:

抓包加空格发现也不能绕过,看源码分析吧:

$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 = trim($_FILES['upload_file']['name']);$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空if (!in_array($file_ext, $deny_ext)) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH.'/'.$file_name;if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = '此文件类型不允许上传!';}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}
}

 可以看到,相比前一关,这里多了一个前后空格的去除,因此这里用加点绕过:

  1. $file_ext = strrchr($file_name, '.'); 这行代码使用strrchr函数获取文件名中的最后一个点(.)之后的部分,即文件扩展名。而不会去除我们加的.。但是在Windows下,这个点和空格一样,都会被忽略。

上传成功,试试:

http://www.lryc.cn/news/511570.html

相关文章:

  • GXUOJ-算法-第二次作业
  • Gavin Wood 的 Polkadot 2024 年度回顾:技术突破与未来的无限可能
  • AduSkin、WPF-UI、Prism:WPF 框架全解析与应用指南
  • 【超详细】Git的基本概念和基本使用方式
  • 【数据结构】单链表的使用
  • 外键约束的应用层维护
  • springboot整合log4j2日志框架1
  • 06 - Django 视图view
  • 基于云计算的资源管理系统
  • 从0入门自主空中机器人-3-【环境与常用软件安装】
  • electron node-api addon开发
  • 如何在嵌入式系统或计算机系统中验证boot程序
  • scala基础学习_运算符
  • 【ANGULAR网站开发】初始环境搭建
  • 【Java】面试题 并发安全 (2)
  • springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
  • React 组件的通信方式
  • WAV文件双轨PCM格式详细说明及C语言解析示例
  • 【ES6复习笔记】数值扩展(16)
  • 百度热力图数据日期如何选择
  • Vue.js 高级组件开发:设计模式与实践
  • 《一文读懂卷积网络CNN:原理、模型与应用全解析》
  • MONI后台管理系统-数据敏感字段存储加密
  • 熟悉各类游戏设计模式的用途与限制,如 factory、strategy、mvc、object pool 等
  • 【RabbitMQ高级篇】消息可靠性问题(1)
  • ASP.NET |日常开发中常见问题归纳讲解
  • 【【深入浅出TinyRisc-v】】
  • 常见的限流算法
  • 【Leetcode 每日一题】3159. 查询数组中元素的出现位置
  • xadmin后台首页增加一个导入数据按钮