upload-labs靶场-Pass-02关-思路以及过程

2023-11-18

开始前的小准备

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-02需要了解的信息

在这里插入图片描述
点击提示可以看到Pass-02关主要是绕过 MIME 检测
在这里插入图片描述
看到这个上传是要上传图片格式,也就是 MIME的图片格式(image)

图片格式 MIME
.gif image/gif
.png image/png
.jpg image/jpeg
.bmp image/bmp
.webp image/webp
.icon image/x-icon
其他 image/vnd.microsoft.icon

通关步骤

这关看不看代码都可以,因为上传图片格式一般都可以上传 .gif.png.jpg格式,其它图片格式就看写的代码让不让上传了

BurpSuite 之类工具抓包(必须是可以修改包的工具)其中 Content-Type:字段后面的就是 MIME的类型值
在这里插入图片描述
如上图已经上传成功了
通关完成!

代码分析

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']            
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '文件类型不正确,请重新上传!';
        }
    } else {
        $msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';
    }
}

看这段PHP代码可以看出,它是先判断MIM格式是否包含可以上传的图片MIME格式,然后在进行上传的,所以这关只能更改 .gif.png.jpg格式的MIME了,如果是其它格式是不会执行文件上传代码的

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

upload-labs靶场-Pass-02关-思路以及过程 的相关文章

  • 通过 AJAX jquery 更改表格背景颜色?

    设想 当我的网页加载时 自动搜索单元格已由用户输入并且具有价值 如果已输入 表格背景颜色将为红色 否则为绿色 假设该表尚未输入 桌子背景绿色是这样的 和表的源代码 table width 1023 height 200 border 1 t
  • 是否可以共享 Symfony2 安装(一台服务器上的多个网站 [域])

    我想在一个根 服务器 下托管多个基于 Symfony2 的网站 是否可以共享 symfony 自己的文件 供应商等 有人知道教程吗 管理起来困难吗 AFAIK Symfony 安装大约有 600MB 我不想以冗余方式保存它 我看起来确实有可
  • 如何使用图像生成 SVG 二维码?

    我有一个用于生成 jpeg 和 png 格式的 qrcode 的代码 但也想在 PHP 中生成带有背景图像的 svg qrcode 我正在使用 qrlib php 生成 jpeg 和 png 格式 QRlib php 也支持 SVG 不是吗
  • MySQL:更新所有行将字段设置为0,但将一行的字段设置为1

    是否有一种有效的方法将行字段的选择更新为 0 但根据 ID 将其中一行设置为 1 基本上 我在数据库中有多个对象 我想在其中一个 inuse 之间切换 因此查询将其中一行 按 id 设置为 inuse 1 将其他行设置为 inuse 0 谢
  • 上传非常大的文件(>5GB)

    我需要你的帮助 我想用 HTML JQuery 和 PHP 创建一个上传脚本 是否可以编写一个可以上传非常大的文件 gt 5 GB 的脚本 我已经尝试使用 FileReader FormData 和 Blobs 但即使使用这些 我也无法上传
  • phpunit --debug 仍然只显示点

    我想查看 phpunit 运行期间当前执行的测试 我用 debugparam 但仍然只得到点 phpunit debug PHPUnit 3 7 19 by Sebastian Bergmann Configuration read fro
  • 如何在 Yii 中设置 returnUrl 值

    我正在使用 Yii 我遇到的问题是Yii app gt user gt returnUrl 它总是让我回到index php page 由于我不知道用户从哪个页面访问了当前页面 如何将其值设置为请求当前页面的页面 您可以使用Yii app
  • 使用 LIKE 和撇号的 Mysql 查询问题

    所以我有一个有趣的问题 我从未遇到过 并且似乎找不到太多有关纠正该问题的信息 我有一个庞大的数据库 里面有大量的数据 相当于 10 年的数据 并试图对其进行搜索 现在搜索功能运行良好 但最近有人让我注意到一个 错误 如果你愿意的话 我尝试对
  • PHP中是否可以使用filter_var过滤带小数点的整数?

    我需要像这样过滤值100 50在 PHP 中使用filter var 现在我这样使用 filter var POST amount FILTER SANITIZE NUMBER INT 它给我的结果是10050 我怎么解决这个问题 提前致谢
  • PDO dblib 未捕获警告

    我已经使用 realestateconz mssql bundle 和免费 TDS 成功使我的 symfony 应用程序连接到 MSSQL 数据库 我的问题是 当我尝试执行存储过程时 如果出现问题 该过程会引发异常 但 PDO 不会报告任何
  • 使用ajax发送表单数据

    我想用 ajax 以表单形式发送所有输入 我有一个这样的表单
  • 更新查询增量字段加上 1 codeigniter 函数 [重复]

    这个问题在这里已经有答案了 我想在 codeigniter 项目中将字段值增加到当前值加 1 所以 我做了一个功能 但它不起作用 我的职能是 function increse field by 1 table name fieldToInc
  • PHP mail() 函数发送电子邮件,但需要 10 多分钟才能显示

    因此 我的用户从手机上的 Android 应用程序进行注册 注册成功后 我会触发一封邮件发送到注册的电子邮件地址 其中包含来自我的 PHP 脚本的激活密码 这是我使用的代码行 非常简单 mail to subject message hea
  • 我可以在 Laravel 5.2 中创建一个继承自 User 的新类吗?

    我对 Laravel 还很陌生 使用的是迄今为止的最新版本 5 2 因此我遇到了以下困境 我知道 Laravel 附带了一个User开箱即用的类 但我想开发一个系统 在其中我可以有另外两种类型的用户 称为Researcher and Adm
  • 在 foreach 循环中使用函数会缓存结果,还是每次都调用该函数?

    在下面的代码中 function a echo a return array 1 2 3 4 foreach a as t echo t 我们可以看到 a 仅被调用一次 并且返回值似乎被缓存了 但后来我看到这场辩论 参见对该问题的评论 ht
  • 根据产品属性在 Magento 中创建购物车规则

    我在一个类别中有产品 针 有些以 100 支为一包出售 有些以 500 支为一包出售 盒子中的针数被设置为产品属性 我想根据购物车中的针总数应用购物车规则 F x 如果您购买 1000 2000 根针头 无论 500 100 包的组合如何
  • Laravel 更新雄辩事件:获取数据

    我一直在读有关雄辩事件的文章 与模型的每次交互都有一个事件 创建 创建 更新 更新 保存 保存 删除 删除 恢复 恢复 我想知道模型更新后的数据以及之前的数据 是否可以 因为文档没有太多关于如何使用这些事件的信息 您正在寻找getDirty
  • 测验程序的 MySql 数据库设计

    我目前正在开发一个项目 主要是创建一个测验应用程序 它将能够进行包含 10 到 20 个问题的多项选择题或简答题的测验 它需要能够根据正确答案检查用户的答案 然后对用户的答案进行评分 稍后 我可能会实现一个后端功能来在线创建测验 但现在我将
  • TCPDF - 来自 mysql 的打印表显示重复的第一行

    我是 TCPDF 的新手 我面临的小问题是所有输出数据都显示同一行 我的意思是第一条记录重复数据库中存在的总数据 行 的次数 这是我的代码 tbl header
  • Symfony2 dev环境可以工作,prod环境给出404错误

    我最近在我的机器上成功安装了 Symfony2 我可以访问http localhost app dev php 开发环境 但是 当我尝试访问 prod 环境时 http localhost app php 我在浏览器中收到以下错误消息 哎呀

随机推荐

  • Web前端——Javascript复习(数组)

    1 数组 1 程序 数据结构 算法 一个好的数据结构 可极大提高程序的执行效率 相关的多个数据应集中存储 管理 分类和排序 2 数组概念 一组连续的变量组成的集合 批量管理多个数据 创建 2 1 var 变量名 2 2 var 变量名 值1
  • 【Github相关】在GitHub上 git clone代码失败,显示:“ithub.com port 443: 连接超时“

    有时候 使用git clone 指令下载代码时显示显示 ithub com port 443 连接超时 可以使用gitclone加速 官网URL https gitclone com 官方描述 有下面三种方式可以使用 方法一 替换URL g
  • c语言 栈头文件,C语言——栈(Stack)

    源码 方式一 头文件 ifndef STACK H define STACK H struct node typedef struct node stack 判断栈是否为空 int isEmpty stack s create stack
  • linux修改静态ip方法&&如何使用xshell连接

    ifconfig查看本地ip和网卡信息 cd到目录 etc sysconfig network scripts 想修改那块网卡就vi他 例如修改eth0 这样eth0的网卡就修改完毕 退出vi进行网络重启 service network r
  • LVGL 控件之(Arc)弧图形绘制

    一 弧形组成 弧图形由背景弧和前景弧组成 它们有各自的起始角度和结束角度 二 控件函数使用 设置背景弧度的函数 lv arc set bg angles arc start angle end angle 或者用 lv arc set bg
  • Thymeleaf表达式

    1 标准变量表达式 th text 需要在属性里面填写 例如 用户编号 span span br 用户姓名 span span br 用户年龄 span span br 2 选择变量表达式 星号表达式 不推荐 必须使用th object属性
  • Java学习笔记 --- 布尔类型

    一 布尔类型 1 布尔类型也叫boolean类型 boolean类型数据只允许取值true和false 无null public class Bool public static void main String args boolean
  • 测试触控延时的软件,重点测试:触控屏响应时间_笔记本评测-中关村在线

    重点测试 触控屏响应时间 触控型笔记本除了有一块触控屏外 传感器及控制IC部分是十分重要的 整套电路设计优劣会直接会影响到触控的响应时间 下面就来进行实际测试 为了这个环节我们特意找到了一套专业的滑轨设备 精准性是本次测试的重点指标 由于滑
  • JavaBean与XML相互转换

    一 JavaBean注解 1 XmlRootElement 类级别注解 name属性用于指定生成元素的名字 若不指定 默认使用类名小写作为元素名 XmlRootElement name mystudent XmlRootElement pu
  • Nginx的X-Accel-Redirect实现大文件下载

    一 文件下载的几种方式 1 直接给出下载地址 使用静态文件服务器nginx下载 任何人都可以下载 无法控制用户的权限 2 后端流式读取文件内容 设置header后疯狂输出 django文档中提到 可以向HttpResponse传递一个迭代器
  • 蓝桥杯算法训练VIP-传球游戏

    题目 题目链接 题解 动态规划 这个题不能用DFS 用DFS的小朋友趁早放弃 输入数据为30 30时 输出为155117522 这就意味着要是dfs的话 需要搜到底155117522次 光遍历这么多次都会超时更别说深搜了 所以只能动归 也算
  • SpringMVC注解

    注解大全 请求注解 名称 类型 位置 作用 注意点 RequestMapping save 方法注解 SpringMVC控制器方法定义上方 设置当前控制器方法请求访问路径 如果设置在类上统一设置当前控制器方法请求访问路径前缀 路径不能重复
  • cmake脚本中的list

    代码 cmake minimum required VERSION 2 8 set mylist a list APPEND mylist b c MESSAGE mylist MESSAGE mylist foreach componen
  • 适用于 Windows 11/1 0电脑的 8 款最佳免费数据恢复软件

    在这个数字办公时代 我们总是在电脑前工作 处理海量数据 存储重要文件 然而 系统崩溃 病毒攻击或人为错误都会导致极度绝望的数据丢失 此时 专业的数据备份和恢复工具就是不幸者的救命稻草 因此 这篇文章将向您介绍适用于Windows 11 10
  • sqlloader的使用------Linux版

    其实Linux中sqlloader的操作和在windows中的操作是一样的 下面我再为大家详细地讲解一下 一 注意事项 首先要注意下面的情形 我是在虚拟机中运行的Linux系统 关于在Linux系统中root用户下多次执行sqlldr 都是
  • LSP协议被劫持导致不能上网

    故障现象 最近有同事电脑浏览器打不开网页 DNS没问题 外网地址可以PING通 本地连接显示正常 登陆QQ显示网络连接超时 打开浏览器不能显示网页 网络丢包率达到了100 本地连接数据包收到为0 查杀木马 病毒也不能解决问题 原因分析 Wi
  • 接1.1 Python语言概述

    1 1 3 Python2和Python3 初学Python的读者 在打开Python官方网站 https www python org 下载Python时 总会看到有两个可供下载的版本 python2 7和Python3 X 从版本号上来
  • Django拼接queryset

    querysets one queryset two queryset
  • _MSC_VER

    MSC VER是微软的预编译控制 MSC VER可以分解为 MS Microsoft的简写 C C编译器 VER Version的简写 MSC VER的意思就是 Microsoft的C编译器的版本 微软不同时期 编译器有不同的版本 MS V
  • upload-labs靶场-Pass-02关-思路以及过程

    开始前的小准备 upload labs靶场 是PHP环境运行的 所以我准备了一个PHP脚本和一张图片 图片好准备 PHP脚本如果不想写的话可以用我的这个获取当前时间的PHP脚本 图片默认不清楚放大看 Pass 02需要了解的信息 点击提示可