安全漏洞问题5:上传任意文件

简介: 上传任意文件漏洞是指用户可以上传所有文件,程序没有检测上传文件大小、类型是否是符合期望,或仅仅在客户端对上传文件大小、上传文件类型进行限制,未在服务器端进行验证。恶意用户可以利用例如上传一些恶意的程序,比如图片木马。

安全漏洞问题5:上传任意文件
1.1. 漏洞描述
上传任意文件漏洞是指用户可以上传所有文件,程序没有检测上传文件大小、类型是否是符合期望,或仅仅在客户端对上传文件大小、上传文件类型进行限制,未在服务器端进行验证。恶意用户可以利用例如上传一些恶意的程序,比如图片木马。
1.2. 漏洞危害
如果上传文件脚本未对用户所上传文件进行任何限制,或者上传文件检测可以被绕过,则可能会对服务器造成很大危害。恶意用户可以通过上传木马文件,获取目标服务器的控制权限。
1.3. 解决方案
针对上传任意文件漏洞, 应采取如下措施进行防范:
 对上传文件类型进行检查
仅允许上传特定的文件类型,该检查不能依据HTTP HEAD信息,可以直接检查上传文件的扩展名,如下示例:
//代码示例:限制上传文件为XLS
String xlsPath = props.getProperty("xls");
bis = new BufferedInputStream(file.getInputStream());
File upload = new File(xlsPath + "/" + fileName);

 if ("".equals(fileName)) {
     ActionMessages messages = new ActionMessages();
     messages.add("file", new ActionMessage("文件名不能为空!",false));
     saveErrors(request, messages);
     return mapping.findForward("fetchxls");
 }
 String[] fArray = fileName.split("\\.");
 if (fArray.length == 1) {
     ActionMessages messages = new ActionMessages();
     messages.add("file", new ActionMessage("文件格式无效!",false));
     saveErrors(request, messages);
     return mapping.findForward("fetchxls");
 }
 if (!"xls".equalsIgnoreCase(fArray[fArray.count()-1])) {
     ActionMessages messages = new ActionMessages();
     messages.add("file", new ActionMessage("文件格式无效!",false));
     saveErrors(request, messages);
     return mapping.findForward("fetchxls");
 }
 if (file.getFileSize() == 0) {
     ActionMessages messages = new ActionMessages();
     messages.add("file", new ActionMessage("文件长度为0,上传失败!",false));
     saveErrors(request, messages);
      return mapping.findForward("fetchxls");
 }
bos = new BufferedOutputStream(new FileOutputStream(upload));
int available = bis.available();

 限制上传文件的访问权限
 在服务器利用系统权限限制上传文件和目录的权限,拒绝执行权限
 将上传目录从WEB空间移出,保证用户无法直接从URL访问到上传文件

目录
相关文章
|
2月前
|
安全 网络安全
明御安全网关任意文件上传漏洞
安恒信息明御安全网关(以下简称“NGFW”)秉持安全可视、简单有效的理念,以资产为视角,构建“事前+事中+事后”全流程防御的下一代安全防护体系,并融合传统防火墙、入侵防御系统、防病毒网关、上网行为管控、VPN网关、威胁情报等安全模块于一体的智慧化安全网关。
114 1
|
6月前
|
安全 Shell PHP
渗透攻击实例-文件上传导致任意代码执行
渗透攻击实例-文件上传导致任意代码执行
|
7月前
|
监控 算法 Java
记一次从任意文件下载到getshell
记一次从任意文件下载到getshell
82 0
|
7月前
|
SQL Web App开发 安全
Smanga未授权远程代码执行漏洞(CVE-2023-36076) 附加SQL注入+任意文件读取
Smanga存在未授权远程代码执行漏洞,攻击者可在目标主机执行任意命令,获取服务器权限。
167 0
|
10月前
|
存储 安全 前端开发
代码审计——任意文件下载详解
代码审计——任意文件下载详解
171 0
|
安全 PHP Windows
35、本地文件包含漏洞
35、本地文件包含漏洞
73 0
35、本地文件包含漏洞
|
编解码 安全 Shell
CVE-2017-9993ffmpeg 任意文件读取漏洞环境
漏洞描述 2.8.12之前的FFmpeg、3.1.9之前的3.0.x和3.1.x、3.2.6之前的3.2.x和3.3.2之前的3.3.x未正确限制HTTP Live Streaming文件扩展名和解复用器名称,这允许攻击者通过特制的播放列表数据读取任意文件。 环境搭建可以查看我的这篇文章 https://developer.aliyun.com/article/1113693?spm=a2c6h.26396819.creator-center.8.22fb3e18sKKMLR 目录为 /vulhub-master/ffmpeg/phdays 运行命令 ```sh docker-compose
360 0
 CVE-2017-9993ffmpeg 任意文件读取漏洞环境
|
安全
CVE-2020-8209 XenMobile 控制台存在任意文件读取漏洞
XenMobile提供了一种可靠的移动设备管理解决方案,可以对企业设备和员工个人设备进行基于角色的管理、配置和支持并确保安全性。与只能提供基本设备管理软件的大多数厂商不同,XenMobile可提供多种高级功能和特性来确保移动应用可随时用于业务目的并确保移动内容安全性,如区域防护(geo-fencing)、自动化合规性及一键式实时聊天和支持等。
74 0
CVE-2020-8209 XenMobile 控制台存在任意文件读取漏洞
|
安全 Shell 测试技术
Shopex V4.8.4|V4.8.5下载任意文件漏洞
利用前提是程序所应用的数据库服务器而且要是可以外连的,这个很关键。 自己搞站时候遇见的站,网上找不到该版本的漏洞,自己拿回源码读了一下。 找到一个漏洞,还是发出来吧。 读取任意文件漏洞: http://www.xx.com/shopadmin/index.php?ctl=sfile&act=getDB&p[0]=. . /. . /config/config.php 复制代码可以连上数据库。
2038 0
|
安全 PHP 数据库
WordPress安全漏洞:从任意文件删除到任意代码执行
  WordPress安全漏洞:从任意文件删除到任意代码执行   WordPress是网络上最受欢迎的CMS系统。据w3tech统计,约有30%的网站运行了该系统。该系统的应用是如此广泛,难免会成为网络犯罪分子攻击目标。
599 0