基础介绍

定义

用户通过文件上传的功能模块进行文件上传时,如果服务端没有对上传文件进行严格的验
证和过滤,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。则
攻击者可以通过上传木马,webshell等恶意文件,经过web容器进行解析,对服务器进行
攻击造成伤害,叫文件上传漏洞。(常见上传点,头像,简历附件,留言栏,教务系统分数上传等)

产生原因

1没有对上传文件进行严格安全校验
2.服务器配置不当
3.过滤不严格(只检测了后缀,没有对文件内容进行检验)
4,没有对上传文件进行限制
5,中间件等存在解析漏洞
6.本地文件上传限制被绕过
7.文件路径截断

造成危害

1.上传web脚本语言,经过服务器的web容器解析并执行可导致远程代码执行。(比如说通过上传webshell到了对方服务器,我们就可以通过蚁剑,冰蝎,哥斯拉来对webshell进行链接,在链接后我们就可以通过控制对方服务器执行命令,它所能执行的命令是比通常的图形化界面所能执行的命令更多)
2.上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其
他通过类似方式控制策略文件的情况类似)。
3.上传文件是病毒、木马文件,诱骗用户或者管理员下载执行,进行挖矿等。
4,上传文件是钓鱼图片或包含了脚本的图片,进行钓鱼和欺诈。
5,不常见的利用方法,以文件上传为入口,上传一个包含php脚本的合法的文本文件,在
利用本地文件包含漏洞(LocalFileInclude)执行此脚本。(多漏洞间的合作,比如通过文件上传漏洞进一步达成与文件下载漏洞进行合作,进一步控制对方服务器)

上传流程

1,客户端>表单上传->服务器接收上传信息-->存储为临时文件->服务器对上传文件
进行安全性处理(通过PHP代码的指导进行文件安全性检测)-->重命名-->转存为正
式文件
(先检测再上传,文件上传后会存储为临时文件,然后服务器再对其进行处理,其中攻击方是无法知道文件会临时存储于什么位置,合格则重命名,不合格则删除)
2.客户端->表单上传->服务器接收上传信息->将文件存储在服务器固定路径->对文
件进行检测->合格保留
,不合格对文件进行删除,对上传者进行提示(先上传再检测,是攻击方先将文件直接上传到目的地址/目标路径(比如服务器所在地址路径)了后,服务器再对其进行检测,合格就保留,若不合格再对其进行删除;不合理处在于,若攻击方比服务器更快,在对方没有反应过来前就进行了一个链接)

上传漏洞挖掘流程

1、渗透测试目标:寻找漏洞,拿下对方服务器
进入后台,通过文件上传,可以上传木马等文件->进行后续利用。(具体挖掘流程我们应先看这个网站它有哪些功能点,发现存在文件上传点,如在用户个人信息这些位置可以上传一些文件/头像这些,然后进行挖掘绕过,先判断是前端检测还是后端检测)
2、绕过思路:
检查前后端(若为前端检测:1.可以通过一些js插件关掉前端;2.浏览器自身设置F12和F1来关掉    前端js;3.修改它的页面源代码;4.BP改包。若为后端检测:大小写,空格,竞争上传,文件流,双写,结合一些解析漏洞等)
检查黑白名单(上传随机文件后缀)
检测文件内容还是文件后缀(gpj后缀改为word会损坏文件内容,通过这种方式去判断是检测内容还是文件后缀)
检查内容是否会对图片进行二次渲染(应用在图片木马检测中,二次渲染主要针对图片的有效图像数据进行处理,因此如果对图片木马进行了二次渲染的话我们要对其进行绕过,就要把一句话插入到 图片在二次渲染后会保留的那部分数据里,确保不会在二次处理时删除掉)
是否采用waf
是否有中间件可以进行利用

具体操作

1.先上传图片格式文件如:png,确定上传点有效性(游戏上传点是假的,不能上传图片)
2.对图片进行图片马制作,图片马可以进行大部分绕过
3.检查图片马是否制作成功,能否正常使用。
检查步骤:进入本地测试(不是桌面修改),成功在进行后续实战环节。
方一:先将图片码改为php后缀,进行调用。若出现乱码则说明在经过二次渲染后是不能对图
片进行正常解析的(说明图片已经被当作PHP执行)
方二:图片马下载后,更改后缀名为.txt,看里面还木马代码是否还在。是否被
篡改是否能用(若已被篡改则后续需更换绕过方式)
4.可用后在进行后续判断,前后端通过插件进行测试
5.进行黑白名单,通过输入随机后缀进行上传
6.多次进行测试(黑盒测试)

可扩展攻击面

文件上传时常见程序功能之一,比如用户头像上传。但文件上传点不仅只涉及图像相关的扩展,还
会涉及其他业务的其他扩展共同构成系统功能。所以我们可以通过文件上传进行相关扩展,进行其
他类型漏洞利用攻击,扩大攻击范围,挖掘其他漏洞类型。如:
1.远程代码执行
文件上传可以通过上传shel对目标服务器进行控制,进一步执行相关操作,拿到对方服务器权限。
如可以通过上传一句话木马,上传成功后,使用webshell相关管理工具进行连接访问,对其进行命
令执行相关操作执行shell。
2.大文件拒绝服务
是否有大小限制上传文件
通常存在与文件上传功能相关的大小限制,其范围可能从5MB到200MB甚至更小/更大,具体取决于应用程序逻辑。但是,在某些情况下,如果未定义此限制或不存在适当的验证检查,则可能允许攻击者上传相对较大的文件,从而导致资源消耗,从而可能导致拒绝服务情况。
要检查是否存在大文件拒绝服务简单操作步骤:
1.创建一个大于定义上限的文件。例如,具有500MB文件大小的图像文件。
2.现在,上传文件,如果应用程序接受文件并开始处理它,从另一台设备浏览应用程序以查看是否有任何缓慢的行为或连接错误。

防护方式

今典方式: 过滤、封端口、关服务
1.通过服务器后端对上传的文件进行过滤,防止本地文件上传限制被绕过
2,及时查看最新公布漏洞通告,如果服务器中涉及相关组件,要及时更新补丁包
3,对文件上传的目录进行控制,设置为不可执行。只要保证web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器不对其进行解析,木马等也不会生效。(主要两种方式,先检测再上传和先上传再检测,主要避免先上传再检测这种方式)
4,对上传文件类型进行判断。可以结合使用MIMEType、后缀检查等方式。在文件类型检查中,尽量使用白名单方式,黑名单和前端都属于不可靠的。
5,使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户可以进行病毒木马等有害文件上传,但如果应用随机数改写了文件名和路径,攻击者在不知道程序源码情况下不了解随机数等规则,即不知道文件名称就不能访问。还有像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。

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

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

相关文章

【C2000】C2000的硬件设计指导与几点意见

《C2000 MCU硬件设计指南》 提示:《C2000 MCU硬件设计指南》用于指导C2000 MCU应用中的原理图设计与注意事项 文章目录 《C2000 MCU硬件设计指南》 前言 1.器件选型与封装决策 2.电源设计与去耦策略 3.时钟与复位电路设计 4.PCB布局与接地策略 5.EMI/EMC与ESD防护 [F2800x C20…

屏随人动+视觉魔方+多样主题+智能留言,涂鸦Wukong AI 2.0助力打造爆款带屏云台相机

一、带屏云台机:超硬核的市场魔力 作为 IPC 消费级别里的第一大品类,云台机市场一直处于稳步增长阶段,2024 年全球出货量达到 7000 万台。而其中的最强潜力股–带屏云台机,在 AI 大模型的强势赋能下,更于今年迎来全新…

Polkadot - ELVES

ELVES (Endorsing Light Validity Evaluator System) 即 轻量级背书有效性评估系统 。它是 JAM 可扩展且自适应的区块审计协议,即是JAM用于finalise区块的协议, 确保只有有效区块才能最终确定。 论文 – 2024-961 : Jeff Burdges、Cevallos 等人在2024年提出的 ELV…

【科研写作自动化工具】如何​​用AI技术组合(大模型+多Agent+自动化)打造一个“智能论文生产线”​​,把写作流程变成自动化

自主构建智慧科研写作系统——融合LLM语义理解、多智能体任务协同与n8n自动化工作流n8n 是一款开源的 ​​工作流自动化工具​​,类似于 Zapier 或 Make(原 Integromat),但更注重灵活性和开发者友好性。在课程文件中提到的 ​​n8…

window显示驱动开发—监视器类函数驱动程序

设备节点用于表示已连接到一台监视器的显示适配器上的每个视频输出。 设备节点是显示适配器设备节点的子节点。通常情况下,设备堆栈中只有两个设备对象代表一对视频输出/监视器:物理设备对象 (PDO)。功能设备对象 (FDO)。在某些情况下,筛选器…

STM32CubeMX + HAL 库:基于 I²C 通信的 AHT20 高精度温湿度测量实验

1 概述1.1 实验目的本实验基于 STM32CubeMX 与 HAL 库,借助硬件 IC 接口实现对 AHT20 高精度温湿度传感器的测量与数据处理。实验内容涵盖 AHT20 的初始化流程、指令交互机制、测量数据的采集与物理量转换等关键环节。通过对实验驱动代码与测试结果的完整展示&#…

今日分享:C++ -- vector

😎【博客主页:你最爱的小傻瓜】😎 🤔【本文内容:C vector 😍 】🤔 --------------------------------------------------------------------------------------------------------------------…

NAS Docker 安装N8N

NAS Docker 安装N8Ndocker 操作中文版使用 Docker Compose(更易于管理)创建一个 docker-compose.yml 文件,内容如下:yaml version: 3services:n8n:image: n8nio/n8n:latestcontainer_name: n8nrestart: unless-stoppedports:- &q…

Node.js汉字转拼音指南:pinyin-pro全解析

pinyin-pro 工具库简介核心功能:汉字转拼音、多音字处理、音调控制、格式定制等性能特点:高效、轻量级、支持多种拼音风格应用场景:搜索优化、数据排序、中文输入法等环境准备与安装Node.js npm 或 yarn 安装 pinyin-pronpm install pinyin-p…

UART-TCP双向桥接服务

UART-TCP双向桥接服务是一种将串口(UART)通信与TCP/IP网络通信相互转换的技术服务,其核心功能是实现两种不同协议之间的数据透明传输。1. 基本概念UART(串口):硬件设备的传统通信接口,常见于嵌入…

江协科技STM32学习笔记补充之001。为什么C语言在对STM32编程过程中的二进制要用十六进制来进行读写。而不能直接用二进制来进行读写。

下面给你一个“为什么嵌入式 C(如 STM32)普遍用十六进制而不是二进制来读写寄存器/地址”的系统性分析。核心观点:十六进制是对底层位模式更高效、更可靠的“人类可读编码”,与硬件资料、编译器和调试器生态形成了标准化协同。1&a…

从 “对话” 到 “共创”:生成式 AI 如何重塑内容创作全流程,普通人也能掌握的高效工具指南

一、引言:内容创作的 “AI 范式转移”—— 从单向输出到双向共创​传统内容创作痛点:灵感枯竭、流程繁琐(选题 - 调研 - 初稿 - 修改 - 定稿耗时久)、专业门槛高(如设计需掌握 PS、写作需深厚文字功底)​生…

函数、数组与 grep + 正则表达式的 Linux Shell 编程进阶指南

文章目录1.函数相关2.数组相关3.正则表达式与grep根据你提供的内容,我整理了一份关于Shell脚本中函数、数组和正则表达式的简明参考: 1.函数相关 函数调用: 直接使用函数名调用:函数名 参数传递: 函数内接收参数&…

nginx-realip问题解决方案

nginx-realip问题解决方案一、配置真实ip解析二、日志中记录真实 IP三、在日志中验证一、配置真实ip解析 让backend server知道前端是谁来访问的,知道他们的ip地址 LB在转发数据包的时候,在http请求报文里增加一个字段,携带user的ip地址&am…

Kafka入门指南:从安装到集群部署

一、Kafka 基础与系统要求 1.1 核心概念 Broker:Kafka 服务器节点,负责存储消息和处理客户端请求 Topic:消息分类的逻辑容器,每条消息需指定发送到某个 Topic Partition:Topic 的物理分片,可分布式存储…

20250828在荣品RD-RK3588-MID开发板的Android13系统下适配Bainianxing的GPS模块BU-16M10

20250828在荣品RD-RK3588-MID开发板的Android13系统下适配Bainianxing的GPS模块BU-16M10 2025/8/29 9:50荣品RD-RK3588-MID开发板。适配GPS 38400bps 需要配置波特率吗?一般是 9600这边使用的泰斗 你要适配新的gps模块?规格书:Baud rate 3840…

对部分国家(地区)出口商品类章金额数据库

一、数据库简介【艾思产研数据平台】对部分国家(地区)出口商品类章金额数据库,收录了2015年02月 - 2025年5月的信息,共计49万余条数据,整理出7个常用字段内容。更新频率为月更。字段内容年月、类章、国家、国家id、所属分类、月出口商品类章金…

STM32——中断

总:STM32——学习总纲 一、什么是中断 1.1 作用与意义 1.2 STM32 GPIO 外部中断简图 二、NVIC 2.1 NVIC 基本概念 Nested vectored interrupt controller,嵌套向量中断控制器,属于内核(M3、M4、M7) 用不到很多的优先…

DVWA靶场通关笔记-Weak Session IDs (Impossible级别)

目录 一、Session ID 二、源码分析 1、index.php 2、impossible.php 三、Weak Session IDs安全级别对比 四、impossible防范方法分析 1、高随机性会话 ID 生成 2、严格的 Cookie 作用域限制 3、安全的传输与存储控制期 本系列为通过《DVWA靶场通关笔记》的Weak Sessio…

SyncBack 备份同步软件: 使用 FTPS、SFTP 和 HTTPS 安全加密传输文件

传输加密是使用安全连接在网络中传输数据(例如文件)的过程。TLS(传输层安全)、SSL(安全套接字层)、SSH(安全套接字外壳)、HTTPS(基于 SSL/TLS 的超文本传输协议&#xff…