upload-labs靶场Pass-02

devtools/2024/10/21 9:34:50/

upload-labs靶场Pass-02

分析源码

$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.'文件夹不存在,请手工创建!';}
}

源码中

if (( F I L E S [ ′ u p l o a d f i l e ′ ] [ ′ t y p e ′ ] = = ′ i m a g e / j p e g ′ ) ∣ ∣ ( _FILES['upload_file']['type'] == 'image/jpeg') || ( FILES[uploadfile][type]==image/jpeg)∣∣(_FILES[‘upload_file’][‘type’] == ‘image/png’) || ($_FILES[‘upload_file’][‘type’] == ‘image/gif’))

可以看出验证方式是文件类型,使用白名单验证
选择上传文件并抓包,修改文件类型可以绕过
上传php文件,本来是不容许的
在这里插入图片描述

抓包
在这里插入图片描述
修改Content-Typr字段为源码中提到的任意一种,放包
查看服务端,有了我们上传的php文件,由此绕过成功
在这里插入图片描述
OVER!


http://www.ppmy.cn/devtools/127528.html

相关文章

SQL Injection | SQL 注入 —— 时间盲注

关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客 0x01:时间盲注 —— 理论篇 时间盲注(Time-Based Blind SQL Injection)是一种常见的 SQL 注入技术,适用于那些页面不会返回错误信息,只会回…

XML 编辑器:功能、选择与使用技巧

XML 编辑器:功能、选择与使用技巧 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它定义了一组规则,用于将电子文件结构化。由于其灵活性和广泛的应用,XML编辑器成为了开发者、数据管理专家和内容创作者的重要工具。本文将深入探讨XML编辑器的功能、选择标准以…

Spark的安装配置及集群搭建

Spark的本地安装配置&#xff1a; 我们用scala语言编写和操作spark&#xff0c;所以先要完成scala的环境配置 1、先完成Scala的环境搭建 下载Scala插件&#xff0c;创建一个Maven项目&#xff0c;导入Scala依赖和插件 scala依赖 <dependency><groupId>org.scal…

江恩理论(Gann Theory)

威廉江恩 威廉江恩&#xff08;William D.Gann&#xff09;&#xff0c;1878年出生于美国德州&#xff0c;二十世纪最著名的投资家。在股票市场上的骄人成绩无人可比。 江恩理论 江恩理论是一种通过数学、几何学、宗教和天文学的综合运用&#xff0c;来分析和预测市场走势的投…

「从零开始的 Vue 3 系列」:第十三章——架构一个Vue项目(简单版)

前言 本系列将从零开始&#xff0c;系统性地介绍 Vue 3 的常用 API&#xff0c;逐步深入每个核心概念与功能模块。通过详尽的讲解与实战演示&#xff0c;帮助大家掌握 Vue 3 的基础与进阶知识&#xff0c;最终具备独立搭建完整 Vue 3 项目的能力。 从零开始使用 Vite 和 Vue 3…

【论文笔记】X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: X-Former: Unifying Contr…

Unity中叉乘意义与代码

Unity中叉乘意义与代码 在三维几何中&#xff0c;向量a和向量b的叉乘结果是一个向量&#xff0c;更为熟知的叫法是法向量&#xff0c;该向量垂直于a和b向量构成的平面。 叉乘的结果是个向量&#xff0c;方向在z轴上,在二维空间里&#xff0c;让我们暂时忽略它的方向&#xff0c…

RabbitMQ系列学习笔记(一)--认识消息队列

文章目录 一、MQ的相关概念1、什么是MQ2、MQ应用场景1.应用解耦2.流量消峰3.异步处理 3、MQ的分类1.ActiveMQ2.Kafka3.RocketMQ4.RabbitMQ 4、MQ的比较5、AMQP和JMS 二、RabbitMQ简介1、四大组成部分2、RabbitMQ核心概念1.Producer2.Consumer3.Connection4.Channel5.Broker6.Qu…