基于表单的文件上传

info Web App Scanning 插件 ID 98080

简介

基于表单的文件上传

描述

许多 Web 应用程序的设计要求用户能够上传文件,这些文件将由接收 Web 服务器存储或处理。

扫描程序并未将此标记为漏洞,而是作为提示,供渗透试验员对文件上传功能开展进一步手动测试。

不安全的基于表单的文件上传可能为网络犯罪分子提供直接滥用和成功利用服务器,和/或可能稍后访问该文件的任何第三方的方法。此问题可以通过上传包含服务器端代码(如 PHP)的文件来实现,然后再在客户端提出请求时执行。

解决方案

已识别的页面至少应:
1. 将允许的文件类型列入白名单并阻断所有其他类型。应针对文件的 MIME 类型(而非其扩展名)执行此检查。2. 在上传文件时,在被服务器处理(写入磁盘)之前,应剥离文件名中的所有控制、特殊或 Unicode 字符。3. 确保通过 HTTP `POST` 方法执行上传,而非 `GET` 或 `PUT`。4. 确保将文件写入未包含任何执行权限的目录中,而且该目录内的所有文件都要继承相同的权限。5. 在存储前,使用最新的病毒扫描程序扫描(如有可能)。6. 确保应用程序根据主机操作系统处理文件。例如,文件名长度合适、有足够的空间存储文件、防止覆盖其他文件的保护等。

另见

https://www.owasp.org/index.php/Unrestricted_File_Upload

插件详情

严重性: Info

ID: 98080

类型: remote

发布时间: 2017/3/31

最近更新时间: 2025/5/22

扫描模板: basic, full, overview, pci, scan