upload-labs靶场-Pass-07关-思路以及过程
2023-02-18 16:35:45 时间
开始前的小准备
upload-labs靶场 是PHP环境运行的,所以我准备了一个PHP脚本和一张图片 图片好准备,PHP脚本如果不想写的话可以用我的这个获取当前时间的PHP脚本
<?php
header("content-type:text/html;charset=utf-8");
date_default_timezone_set("PRC");//设置时区
echo "当前时间为:";
$today = date("Y-m-d D h:i:s A ");
echo $today;
?>
图片默认不清楚放大看!!!
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",".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");
$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 . '文件夹不存在,请手工创建!';
}
}
看提示和代码可以看出用前几关的方法是行不通的了
通关过程:
仔细看代码可以看出,它没有将多余的点
去掉,可以在扩展名后面加上点
来绕过验证
我这里还是分两种情况:可以直接改和不可以直接改两种
可以直接在扩展名后加点:
不可以直接在扩展名加点:
通关完成!
相关文章
- java中的NIO和IO到底是什么区别?20个问题告诉你答案
- 数据结构001:最大子数组和
- 数据结构002:买卖股票的最佳时机
- 怎样优化Vue项目
- 数据结构003:有效的数独
- 家电行业的数字化升级:电子采购平台系统如何助力企业降本增效,提升采购协同效率?
- 六西格玛工具:柏拉图
- 友元类和嵌套类
- RTTI和类型转换运算符
- YAML快速入门
- 提升汽配供应链效率,S2B2C电商系统实现企业库存管理智能化
- 虚拟现实 VR 碰撞 3D 可视化,图扑打造一体化管控平台
- 一篇文章教你实战Docker容器数据卷
- 一起从零到一手写迷你版Vue
- 一起实现React-Hooks核心原理
- 内部群炸锅了,同事又删库了
- 一女程序员因薪酬问题离职,rm -f * 删库,瘫痪6个小时,被判9个月
- 广域铭岛参编《数智化供应链参考架构》标准正式发布
- 每周 Postgres 世界动态 2022w49
- 公司架构师常常提起的DNS负载均衡是个什么鬼?