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

upload-labs靶场Pass-02

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.kler.cn/news/359550.html

相关文章:

  • 在MySQL中为啥引入批量键访问(Batch Key Access, BKA)
  • 【计算机网络原理】GBN,SR,TCP区别以及案例介绍
  • 第 6 章 Kafka-Eagle 监控 和 Kafka-Kraft 模式
  • AI图像处理工具:开发者高阶用法与最佳实践
  • JavaWeb——Maven(2/8):概述-介绍安装(步骤、具体操作、测试)
  • Leetcode 3194. 最小元素和最大元素的最小平均值
  • 05,hive
  • Linux:进程状态
  • Unity 同项目多开
  • 数智合同 | 业财一体与履约联动的数字化转型
  • RabbitMQ系列学习笔记(七)--RabbitMQ交换机
  • 【数据结构与算法】插入排序、希尔排序
  • 2024年软件设计师中级(软考中级)详细笔记【6】(下午题)试题6 Java 23种设计模式解题技巧(分值15)
  • 前端自动化测试框架Jest
  • 数据结构与算法--返回袋子数
  • Spring-Bean的实例化和依赖注入方式
  • Spring Boot 2.7=>3.0 升级整理
  • 【进阶OpenCV】 (12)--人脸检测识别
  • 基于SpringBoot+Vue的旅游服务平台【提供源码+答辩PPT+参考文档+项目部署】
  • 智能优化算法-生物地理学算法(BBO)(附源码)