首页 > 其他分享 >文件上传漏洞防御

文件上传漏洞防御

时间:2024-03-30 16:29:05浏览次数:34  
标签:文件 漏洞 CSDN 防御 白名单 服务器 上传

参考文章:

文件上传漏洞-原理篇_文件上传漏洞,find提权-CSDN博客

网络安全-文件上传漏洞的原理、攻击与防御_文件上传漏洞原理-CSDN博客

网络安全课第七节 文件上传漏洞的检测与防御_$post=file_get_contents("php://input");-CSDN博客

文件上传漏洞

概念:

文件上传漏洞发生在有上传功能的应用中,如果应用程序没有对用户上传的文件没有经过严格的合法性检验或者检验或者检验函数存在缺陷,攻击者可以上传木马,病毒等有危害的文件到服务器上面,控制服务器。

前端js过滤绕过:

前段JS过滤绕过通过上传漏洞是因为应用程序实在前端通过JS代码进行的验证,而不是通过程序后端进行的验证,这样就可以通过修改前段JS代码的方式进行绕过上传过过滤,上传木马。

文件上传流程:

用户上传文件 -->服务器的缓存目录 -->移动到目标位置并且重命名

 URL编码原理:

把字符变成16进制,然后加上一个%。URL编码的核心是为了更好的传参

漏洞防御

文件上传漏洞攻击与防范方法_xml 文件上传漏洞-CSDN博客

1.系统运行时的防御

(1)文件上传的目录设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响,因此这一点至关重要。

(2)判断文件类型。在判断文件类型时,可以结合使用MIME Type、后缀检查等方式。在文件类型检查中,强烈推荐白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。

(3)使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。

(4)单独设置文件服务器的域名。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。

(5)使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御。

2.系统开发阶段的防御

(1)系统开发人员应有较强的安全意识,尤其是采用PHP语言开发系统。在系统开发阶段应充分考虑系统的安全性。

(2)对文件上传漏洞来说,最好能在客户端和服务器端对用户上传的文件名和文件路径等项目分别进行严格的检查。客户端的检查虽然对技术较好的攻击者来说可以借助工具绕过,但是这也可以阻挡一些基本的试探。服务器端的检查最好使用白名单过滤的方法,这样能防止大小写等方式的绕过,同时还需对%00截断符进行检测,对HTTP包头的content-type也和上传文件的大小也需要进行检查。

3.系统维护阶段的防御

(1)系统上线后运维人员应有较强的安全意思,积极使用多个安全检测工具对系统进行安全扫描,及时发现潜在漏洞并修复。

(2)定时查看系统日志,web服务器日志以发现入侵痕迹。定时关注系统所使用到的第三方插件的更新情况,如有新版本发布建议及时更新,如果第三方插件被爆有安全漏洞更应立即进行修补。

(3)对于整个网站都是使用的开源代码或者使用网上的框架搭建的网站来说,尤其要注意漏洞的自查和软件版本及补丁的更新,上传功能非必选可以直接删除。除对系统自生的维护外,服务器应进行合理配置,非必选一般的目录都应去掉执行权限,上传目录可配置为只读。

1.文件类型判断,后缀白名单,MIME类型判断结合

2.文件重命名

3.将文件上传的目录设置为不可执行

4.使用多手段检测文件类型,不依赖单独检测手段,比如将MIME检测和后缀名检测结合,使用白名单策略

5.使用随机数来存储文件:防止.php.jpg等多后缀名引起的漏洞

6.单独设置文件服务器的域名,该服务器不能运行任何动态网页,只能静态访问HTML、图片等

上传漏洞修复

1、使用白名单限制文件上传的类型。
2、对上传文件进行随机重命名,并且文件的扩展名不允许用户自定义。
3、对文件上传的文件夹进行权限限制,去掉脚本的执行权限。
4、对文件的内容进行恶意代码的检测。
5、文件服务器单独设置。

1. 严格检测上传文件后缀名、文件头、Content-type(文件类型),尽量采用白名单方式限制。

2. 重编码文件,比如对图片或视频做转换处理。

3. 限制文件大小,避免被恶意上传大文件造成存储空间不足,进而网站无法正常运行。

4. 在服务端本地检测 Webshell,发现后告警出来,人工确认后再删除,同时排查是否为外部入侵导致的,查日志去追踪可能存在的漏洞来源。

5.上传文件重命名,建议使用随机文件名。

6.隐藏上传文件路径相关信息,比如关闭错误回显,不要把上传路径直接返回。

7.限制上传目录可不解析,不同的服务器有不同的配置方式。

限制上传目录

Nginx、Apache禁止上传目录的php执行权限_上传文件的存储目录禁用执行权限-CSDN博客

PHP上传目录禁止执行php文件的方法_如何禁用上传目录脚本的执行权限-CSDN博客

MIME检测

MIME类型检测与绕过_mime检测-CSDN博客

白名单

文件上传漏洞之白名单_文件上传白名单-CSDN博客

采用文件白名单方式构建主机安全环境_安全漏洞 白名单映射-CSDN博客

文件上传漏洞_以白名单方式只允许上传你们要求的文件类型-CSDN博客

标签:文件,漏洞,CSDN,防御,白名单,服务器,上传
From: https://blog.csdn.net/2301_81105268/article/details/137131838

相关文章

  • 35.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-登录成功数据包内容分析
    免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!如果看不懂、不知道现在做的什么,那就跟着做完看效果内容参考于:易道云信息技术研究院VIP课上一个内容:34.登录数据包的监视与模拟首先登陆游戏,到角色选择界面,如下图,可以看到这个数据包很大2421个字节首先确定......
  • Vue怎么使用Upload组件进行图片上传到阿里云OSS,并
    基于前端用Vue2后端用Springboot进行讲解一、创建阿里云OSS       对象存储OSS_云存储服务_企业数据管理_存储-阿里云(aliyun.com),打开网站进行开通    开通后我们来到Bucket列表,创建Bucket            创建过程:后面就默认就行了   ......
  • Linux(4)常见操作整理-静态路由-双网卡-文件上传下载-运维思路-性能监测方法-jar包查找
    五、常见操作1、静态路由配置【描述】:当前ifconfigeno16777728对应ip:172.41.0.120【解决】:(1)[root@localhost~]#cd/etc/sysconfig/network-scripts/(2)添加文件:route-eno16777728​172.41.200.0/24via172.41.0.253deveno16777728​172.41.202.0/24via172......
  • IDEA 上传 git 项目
     1.创建项目:菜单栏找到VCS,创建git仓库,此时代码变红了 2.右击项目找到GIT-->Add,代码绿了 3.存于本地:右击项目 找到Git--> CommitDirectory... 4.此时存在本地git,编辑后点击Commit出错了,不重要。 commit后代码白了。 5.拉取代码,右击项目 ......
  • springboot部署在服务器上使用图片上传功能隔一段时间就会报错
    新写的一个项目,使用springboot实现上传图片的功能接口,然后刚开始部署在服务器上是正常使用的,但是隔一段时间就会发生上传失败,需要重新部署之后又正常,报错内容是Thetemporaryuploadlocation[/tmp/tomcat.7629195566189872429.5002/work/Tomcat/localhost/ROOT]isnotvalid......
  • 学姐,视频上传不了,我上传了图片
    ......
  • 泛微e-cology_getE9DevelopAllNameValue2任意文件读取漏洞
    漏洞描述泛微e-cology依托全新的设计理念,全新的管理思想。为中大型组织创建全新的高效协同办公环境。智能语音办公,简化软件操作界面。身份认证、电子签名、电子签章、数据存证让合同全程数字化。泛微e-cologygetE9DevelopAllNameValue2接口存在任意文件读取漏洞,通过该漏洞......
  • 飞企互联-FE企业运营管理平台ShowImageServlet接口存在任意文件读取漏洞
    声明:本文仅用于技术交流,请勿用于非法用途由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。简介FE企业运营管理平台是一种基于先进技术的云工作台,采用云计算、智能化、大数据、物联网和移动互联网等技......
  • 云计算笔记03--配置yum源及下载nginx并上传项目至服务器(常用命令 lrzsz cat head tail
    配置yum源首先将系统自带的yum源进行备份cd/etc/yum.repos.d///进入到yum配置目录mkdirbackup//创建一个备份目录mv*.repobackup///将所有以.repo结尾的文件移动到备份目录中#阿里云的yum源网站:https://developer.aliyun.com/......
  • PHP代码审计(二)常见漏洞篇
    注入类命令注入将用户输入拼接到命令行中执行导致的任意命令执行问题<?php$command='ping-c1'.$_GET['ip'];system($command);//system函数特性执行结果会自动打印?>此处输入ip参数无任何过滤限制get输入ip=127.127.127.127如果是非法输入:ip=127.127.127.127;......