文件上传知识梳理:原理、工具、绕过、利用与防御

文章简介:

本文全面梳理了文件上传相关知识,包括文件上传漏洞的原理及危害,介绍了 Webshell 相关工具(如冰蝎、哥斯拉、蚁剑),详细阐述了文件上传绕过检测的多种方法(前端检测、服务端检测的各种类型及相应绕过技巧),还探讨了文件上传的其他利用方式(如构造 XSS 漏洞、钓鱼、文件读取 / SSRF、执行 SSI 命令、探测 XXE 漏洞等),最后提出了针对文件上传漏洞的防御措施。

精简笔记:

  • 文件上传简介
    • 原理及危害:网站文件上传功能缺陷可致用户上传可执行脚本,获取服务器端命令执行能力进行恶意操作。
    • 成因及利用条件
      • 成因:开源编辑器漏洞、服务器配置不当等多种原因。
      • 利用条件:恶意文件能上传且路径可访问执行。
  • Webshell 工具
    • 冰蝎:动态加密,不同环境有不同支持方式。
    • 哥斯拉:多种 Payload 和加密器,支持多种后缀和插件。
    • 蚁剑:开源跨平台,面向特定人员。
  • 文件上传 bypass
    • 前端检测:禁用 JS 可绕过。
    • 服务端检测
      • Mime type 检测:抓包修改类型。
      • 文件扩展名
        • 黑名单检测:多种绕过方式。
        • 白名单检测:00 截断有条件绕过。
      • 文件内容检测绕过:多种方法,如文件头伪装、利用图片马、条件竞争等。
      • 利用服务器解析漏洞绕过:多种服务器存在相关漏洞可利用。
      • 分块传输绕过:通过插件,加注释或延时可绕过部分 WAF。
      • HPP 漏洞绕过:利用参数污染。
      • 脏字符绕过:填充脏字符,数据包大可能放行。
      • 文件路径修改:利用../ 回溯上传到根目录。
      • 流量检测绕过:修改请求头相关设置。
  • 文件上传的其它利用
    • 构造 XSS 漏洞:上传多种文件可构造。
    • 钓鱼:制作木马上传钓鱼。
    • 文件读取 / SSRF:利用有漏洞的 ffmpeg 上传相关文件。
    • 执行 SSI 命令:服务器支持相关功能时上传 shtml 文件。
    • 探测 XXE 漏洞:处理 Excel 文件时可能存在漏洞。
  • 防御措施
    • 检查上传路径,设置权限。
    • 扩展名检测,使用黑白名单。
    • MIME 验证,内容检测。
    • 图片二次渲染,文件重命名。
    • 隐藏路径,定义.htaccess 文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringMvc参数传递

首先对于post请求汉字乱码需要进行过滤器配置 普通参数传递 直接传递 客户端传递的属性名与我的bean中的函数参数名相同 映射传递RequestParam("XXX") 在我们方法参数中定义一个与客户端属性名一致 并绑定参数 POJO实体类传递 嵌套POJO传递 数组likes参数传递…

sqoop Oracle to hive出现 Error Msg = ORA-00933: SQL 命令未正确结束

原sqoop脚本: sqoop import \ --connect "jdbc:oracle:thin://10.82.88.223:61521/LZY2" \ --username LZSHARE \ --password LZ^share$5105 \ --driver oracle.jdbc.driver.OracleDriver \ --query "SELECT TO_NUMBER(TO_CHAR(GCRQ, YYYY)) AS gcr…

Spring Boot + Vue:打造高效图书借阅管理平台

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

STM32F103C8T6学习笔记1--新建工程模板

1、简介 STM32是一系列由STMicroelectronics(瑞士意法半导体)公司设计和生产的32位微控制器产品线。这些微控制器基于ARM Cortex-M内核,并具有高性能、低功耗和多种外设接口的特点。STM32处理器被广泛应用于各种嵌入式系统领域,包…

Java日志脱敏(二)——fastjson Filter + 注解 + 工具类实现

背景简介 日志脱敏 是常见的安全需求,最近公司也需要将这一块内容进行推进。看了一圈网上的案例,很少有既轻量又好用的轮子可以让我直接使用。我一直是反对过度设计的,而同样我认为轮子就应该是可以让人拿去直接用的。所以我准备分享两篇博客…

篡改猴 (Tampermonkey) 安装与使用

一、下载篡改猴 (Tampermonkey) 步骤1---官网:篡改猴 - Microsoft Edge Addons

无人机之感知避让技术篇

无人机的感知避让技术是无人机安全飞行的重要保障,它依赖于多种传感器和算法来实现对周围环境的感知和判断。 一、主要技术类型 视觉避障 原理:通过安装在无人机上的摄像头捕捉周围环境的图像,利用计算机视觉技术对图像进行处理和分析&…

动态规划路径问题(不同路径 不同路径2 珠宝的最大价值 下降路径最小和 最小路径和)

本期题型: 1. 不同路径. - 力扣(LeetCode) 2. 不同路径2. - 力扣(LeetCode) 3. 珠宝的最大价值 . - 力扣(LeetCode) 4. 下降路径最小和. - 力扣(LeetCode) …

ARM base instruction -- bfxil

Bitfield Extract and Insert Low copies a bitfield of <width> bits starting from bit position <lsb> in the source register to the least significant bits of the destination register, leaving the other destination bits unchanged. 位域提取并插入低位…

1.探索WebSocket:实时网络的心跳!

序言 你可能听说过"WebSokcet"这个词&#xff0c;感觉它好像很高深&#xff0c;但其实它是一个超级酷的小工具&#xff0c;让我们在Web应用里实现实时通信。想象一下&#xff0c;你可以像聊天一样&#xff0c;在浏览器和服务器之间来回“畅聊“&#xff0c;没有延迟…

springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)

刚解决Spring Framework 特定条件下目录遍历漏洞&#xff08;CVE-2024-38816&#xff09;没几天&#xff0c;又来一个新的&#xff0c;真是哭笑不得啊。 springboot 修复 Spring Framework 特定条件下目录遍历漏洞&#xff08;CVE-2024-38816&#xff09;https://blog.csdn.ne…

嵌入式硬件电子电路设计(二)开关电源BOOST升压电路

目录 升压电路原理 BOOST电路基本结构 BOOST电路工作过程分析 1. 开关导通阶段 2. 开关关断阶段 3. 稳定输出电压 BOOST电路工作的实际调研分析 1. 非同步BOOST电路 2. 同步BOOST电路 XL6009电路分析 SX1308电路分析 引言&#xff1a;前面已经讲述了Buck电路&#…

如何安装和使用PowerDesigner

教程目录 一、安装二、使用 一、安装 1、启动安装程序。 2、Trial&#xff0c;然后Next。 3、选PRC&#xff0c;同意协议&#xff0c;Next。 4、设置安装路径&#xff0c;Next。 5、Next。 6、全选&#xff0c;Next。 7、Next。 8、Next。 9、等待安装。 10、…

SQL进阶技巧:巧用异或运算解决经典换座位问题

目录 0 问题描述 1 数据准备 2 问题分析 2.1 什么是异或 2.2异或有什么特性? 2.3 异或应用 2.4 本问题采用异或SQL解决方案 3 小结 0 问题描述 表 seat中有2个字段id和student id 是该表的主键(唯一值)列,student表示学生姓名。 该表的每一行都表示学生的姓名和 ID。…

PAT甲级-1074 Reversing Linked List

题目 题目大意 给一个链表的头结点和总节点个数&#xff0c;以及k。每k个节点的链表都要翻转。 思路 链表可以用一个结构体数组来存储&#xff0c;先遍历一遍&#xff0c;过滤掉不在链表中的节点。然后将过滤好的节点放入res数组中&#xff0c;每k个元素用一次reverse()&…

PHP + Windows小皮面板 + VScode 安装教程

目录 1. 小皮面板安装包 下载 2、配置MySQL 可以在cmd命令框中使用 3. VScode安装 如有错误&#xff0c;烦请批评指正 1. 小皮面板安装包 下载 官方地址https://old.xp.cn/download.html 下载完后&#xff0c;一路next&#xff0c;文件路径自定义 2、配置MySQL 可以在cm…

ESP8266联网

目录 1.ESP8266连接热点 2.ESP8266创建热点 创建热点的ESP8266 连接热点的ESP8266 3.发送网络请求 案例一 案例二 4.连接服务器 接收信息开关灯 发布消息开关灯 5.ESP8266创建HTTP服务 ​编辑 ​编辑 ​编辑 6.ESP8266HTTP请求控制灯 ​编辑 7.ESP8266接收后端数据…

聊一聊Qt中的按钮

目录 QAbstractButton 功能概述 快捷键 默认按钮 按钮状态 自动重复功能 切换按钮 信号 子类化 API列表 QPushButton 按钮外观与功能 默认按钮 按钮的状态与模式 使用建议 菜单按钮 API QToolButton 创建工具按钮 用途示例 自动抬起功能 图标设置 外观与…

使用RabbitMQ实现微服务间的异步消息传递

使用RabbitMQ实现微服务间的异步消息传递 RabbitMQ简介 安装RabbitMQ 在Ubuntu上安装RabbitMQ 在CentOS上安装RabbitMQ 配置RabbitMQ 创建微服务 生产者服务 安装依赖 生产者代码 消费者服务 消费者代码 运行微服务 消息模式 直接模式 生产者代码 消费者代码 扇出模式 生产…

「实战应用」如何在 DHTMLX Scheduler 中实现动态主题切换?

创建响应式、直观的 UI 需要适应用户对应用程序各个方面的偏好。其中一项可显著提升用户体验的热门功能是能够在明暗主题之间切换。它在日程安排日历等综合组件中尤其有用。 本文将指导您在 DHTMLX Scheduler 中实现动态主题切换&#xff0c;使其适应用户设置的首选系统主题。…