文件上传复现

1、什么是文件上传漏洞?

答:文件上传漏洞是指攻击者通过上传恶意文件到服务器、从而执行任意代码、获取系统权限或者破坏系统安全的漏洞、常见于允许用户上传文件的Web应用程序中。

2. 文件上传漏洞形成原因
  • 未验证文件类型:未对上传文件的类型、扩展名或内容进行验证。

  • 未限制文件大小:未限制上传文件的大小,可能导致服务器资源耗尽。

  • 存储路径不安全:上传文件存储在Web目录下,且文件名可预测或可控。

  • 未重命名文件:上传的文件保留原始文件名,可能被覆盖或执行。

  • 未扫描恶意内容:未对上传文件进行病毒或恶意代码扫描。

3. 文件上传漏洞防御措施
  • 文件类型验证:检查文件扩展名和MIME类型,确保只允许安全类型。

  • 文件内容检查:检查文件内容,确保其符合预期格式。

  • 文件重命名:上传后重命名文件,避免使用用户提供的文件名。

  • 存储路径安全:将上传文件存储在非Web可访问目录,或配置服务器禁止执行上传目录中的脚本。

  • 文件大小限制:限制上传文件的大小,防止资源耗尽。

  • 病毒扫描:对上传文件进行病毒扫描。

  • 权限控制:确保上传目录的权限设置正确,防止文件执行。

4、文件上传漏洞复现

4.1、通过禁用JavaScript代码进行绕过

        首先我们需要在chrome浏览器上进行设置、不允许使用JavaScript代码

        然后我们进行对服务器进行上传webshell、名称为web.php。并使用浏览器对其进行访问web.php文件、看是否可以访问到。

由此可得、我们的webshell上传成功。

4.2、MIME验证 

判断文件类型(http请求的Content-Type字段)是否为image/jpeg、image/png、image/gif,通过
Burpsuite抓包修改Content-Type字段类型为image/jpeg、image/png、image/gif绕过,上传web.php

通过burp suite进行抓包可以看到、我们已经成功将webshell上传。

4.3、进行修改httpd.conf配置文件。

在apache http服务器的配置中、'AddType'指令用于将特定的 MIME 类型与文件扩展名相关联。 这是upload-labs默认的httpd.conf文件的配置。

通过修改AddType指令,使.php5也能被解析为php文件。

通过重启Apache服务、上传webshell、上传成功并且能够被正确解析。

4.4、通过修改大小写进行绕过。

将webshell文件后缀.php进行修改成.phP。也可以成功上传webshell.

4.5、通过空格绕过

此时我们通过burp suite抓包可以看到webshell可以被成功上传。

4.6、通过加点.进行绕过

4.7、进行双写php进行绕过

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

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

相关文章

【网络安全工程】任务12:网络安全设备

目录 一、防火墙​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 二、入侵检测系统(IDS)和入侵防御系统(IPS)​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 三、防病毒网关​ ​1、作用​ 2、配置方式​ 3、存在的漏洞​ …

Docker容器与宿主机目录映射深度解析

哈喽,大家好,我是木头左! 一、Docker容器与宿主机目录映射基础原理 在深入了解如何查询 Docker 容器目录在宿主机的映射目录之前,有必要先明晰其背后的基础原理。Docker 容器通过挂载(mount)机制将宿主机的…

DeepSeek+Maxkb+Ollama+Docker搭建一个AI问答系统

DeepSeekMaxkbOllamaDocker搭建一个AI问答系统 文章目录 DeepSeekMaxkbOllamaDocker搭建一个AI问答系统前言一、创建同一内网的网络二、拉取两个镜像三、启动Ollama以及调试Maxkb4.Maxkb创建一个应用并建立知识库5、应用效果总结 前言 我觉得只要是使用Docker技术,…

决策树,Laplace 剪枝与感知机

1.决策树 决策树是一种用于分类任务的监督学习算法。它基于特征的划分来做出决策,每个节点表示一个特征,每条分支代表该特征的可能取值,每个叶子节点代表分类结果。 用通俗的话来说,决策树就像一个**"如果……那么……&quo…

使用DeepSeek+蓝耘快速设计网页简易版《我的世界》小游戏

前言:如今,借助先进的人工智能模型与便捷的云平台,即便是新手开发者,也能开启创意游戏的设计之旅。DeepSeek 作为前沿的人工智能模型,具备强大的功能与潜力,而蓝耘智算云平台则为其提供了稳定高效的运行环境…

标准卷积(Standard Convolution)

标准卷积的基础操作图解: 卷积之后尺寸公式: 输入尺寸:WH卷积核尺寸:Fw​Fh​填充大小:P步长:S 输出尺寸 WoutHout可以通过以下公式计算: 其中[x]表示向下取整。 实例: 输入图像…

使用 Elastic-Agent 或 Beats 将 Journald 中的 syslog 和 auth 日志导入 Elastic Stack

作者:来自 Elastic TiagoQueiroz 我们在 Elastic 一直努力将更多 Linux 发行版添加到我们的支持矩阵中,现在 Elastic-Agent 和 Beats 已正式支持 Debian 12! 本文演示了我们正在开发的功能,以支持使用 Journald 存储系统和身份验…

ArcGIS Pro中字段的新建方法与应用

一、引言 在地理信息系统(GIS)的数据管理和分析过程中,字段操作起着至关重要的作用。 无论是进行地图制作、空间分析还是数据统计,字段都是承载属性信息的基本单元。 ArcGIS Pro作为一款功能强大的GIS软件,为用户提…

企业如何选择网站模版快速建站?

企业想拥有一个专业和功能齐全的官网事关重要。然而,对于新手用户,从基础开始创建网站可能是一件较为复杂和麻烦的过程。今天的文章从零开始给介绍一下如何搭建网站。 一、先确定建站的主题 用户在开始建站前明确自己建站的目的、是为了宣传网站、还是销…

Phi-4-multimodal:图、文、音频统一的多模态大模型架构、训练方法、数据细节

Phi-4-Multimodal 是一种参数高效的多模态模型,通过 LoRA 适配器和模式特定路由器实现文本、视觉和语音/音频的无缝集成。训练过程包括多阶段优化,确保在不同模式和任务上的性能,数据来源多样,覆盖高质量网络和合成数据。它的设计…

北京迅为RK3568开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

爬取动态数据,爬取持久化数据

1. 动态内容与静态内容的区别 动态内容通常指通过 JavaScript 渲染或异步加载的数据。静态内容则是页面加载时直接可见的内容,通常通过 HTML 直接获取。很多现代网站都使用 JavaScript 动态渲染页面内容(例如 AJAX 请求)。 头条网站的热榜内…

rdiff-backup备份

目录 1. 服务器备份知识点 1.1 备份策略 1.2 备份步骤和宝塔面板简介 1.3 CentOS7重要目录 2. 备份工具 2.1 tar -g 备份演示 2. rsync 备份演示 3. rdiff-backup 备份演示 4. 差异和优缺点 3. rdiff-backup安装和使用 3.1 备份命令rdiff-backup 3.2 恢复命令--…

【6】字典树学习笔记

前言 WFLS 2023 寒假集训 Day2 大纲里字典树在数据结构里,但是个人认为应该属于字符串,就把它放到字符串里了 字典树 字典树,又称Trie树,字母树。每个顶点代表一个字符,从根节点到叶子节点的路径上所有的节点的字符…

Aim Robotics电动胶枪:机器人涂胶点胶的高效解决方案

在自动化和智能制造领域,机器人技术的应用越来越广泛,而涂胶和点胶作为生产过程中的重要环节,也逐渐实现了自动化和智能化。Aim Robotics作为一家专注于机器人技术的公司,其推出的电动胶枪为这一领域带来了高效、灵活且易于操作的…

Camel AI Owl + 阿里云QWQ 本地部署

在 Windows 环境下,部署 Camel AI Owl 并集成阿里云百炼 DeepSeek-R1 API。通过循序渐进的详细说明,你将轻松完成从环境配置到系统落地的全过程。 目录 环境准备Windows 下创建虚拟环境并安装依赖部署 Camel AI Owl配置阿里云百炼 DeepSeek-R1 API测试与…

基于django+pytorch(Faster R-CNN)的钢材缺陷识别系统

一、训练数据来源以及数据标注 数据来源于阿里云天池实验室公开数据集中的铝型材缺陷检测数据集APDDD 数据标注通过labelme进行标注,图片所有标注以转化为矩形标注,存放成json格式。 二、模型训练方式及结果 缺陷识别模型基于Faster R-CNN ResNet5…

Linux网络编程——UDP网络通信的简单实现

目录 UDP网络通信 简单的udpServer实现 头文件 封装udp服务 1、私有成员 2、构造函数和析构函数 3、 udp服务器初始化 4、udp服务器运行 5、完整代码 简单的udpClient实现 UDP实现最简单的公共聊天 完整代码 inet_ntoa()相关问题 UDP网络通信 在正式实现UDP网络通…

【Prometheus】层层解析prometheus如何监控k8s核心组件

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

【JavaEE】多线程进阶(2)

【JavaEE】多线程进阶(2) 一、JUC(java.util.concurrent) 的常⻅类1.1 Callable 接⼝1.2 ReentrantLock1.3 原子类原子类的特性:常见原子类:原子类的实例: 1.4 线程池1.5 信号量 Semaphore代码实例 1.6 CountDownLatch…