upload-labs靶场-Pass-09关-思路以及过程
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-09
代码:
$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_name = deldot($file_name);//删除文件名末尾的点
$file_ext = strrchr($file_name, '.');
$file_ext = strtolower($file_ext); //转换为小写
$file_ext = trim($file_ext); //首尾去空
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 . '文件夹不存在,请手工创建!';
}
}
通关过程:
这关其实是代码的一个问题,看代码可以看出它只去掉一次空格
和点
,举个例:测试.php. .
最后代码执行完后变成 测试.php.
这个代码漏洞在之前的关卡大多少也是可以用到这个漏洞过关的,这个靶场本身就是学习用的所以还是每个关卡学习一个方法最好
通关完成!
相关文章
- 漫谈图像超分辨率技术
- Centos7 运行Springboot打包后的jar文件的相关操作
- OpenFeign设置超时时间
- nacos集群配置
- 各个微服务认证授权的处理方法
- EasyExcel中无法使用Spring事务的解决办法
- 自定义注解实现防重复提交(纯后端解决)
- RabbitMQ + Haproxy 实现高可用镜像集群
- 开源 | 用深度学习让你的照片变得美丽
- 机器视觉入门知识总结
- Screaming Frog SEO Spider for Mac(网络爬虫开发工具) 18.1注册激活版
- 深度好文:理解可变形卷积和光流对齐
- Nacos2.1.0 - 外网服务器上的集群部署
- 听说,3D ToF传感器将成研发主流!
- markdown语法简介
- 让typecho支持table of contents
- 正则表达式教程
- 记一次bypy的使用
- bad interpreter 没有那个文件或目录
- vim入门