文件上传漏洞

文件上传漏洞概念

在动态网站或web应用系统中,如果动态脚本没有对用户上传的文件类型进行检查和验证,会让非法用户提交危险内容或恶意代码到服务器,进而危害服务器数据和信息的安全。这种软件漏洞就叫做文件上传漏洞。
在这里插入图片描述

文件上传漏洞的危害

(1)可能造成非授权用户访问系统
(2)可能造成重要信息泄露
(3)可执行破坏性操作,甚至控制整个系统,毁坏数据
(4)可以为其他攻击打下基础

利用文件上传漏洞的步骤

(1)攻击者利用搜索引擎或专用工具,搜索具备文件上传漏洞的动态网站或web应用系统。
(2)注册普通用户,获得文件上传权限和上传入口。
(3)利用漏洞向服务器上传恶意文件或内容。
(4)通过浏览器访问上传的恶意文件,使恶意文件被web解析器执行,并根据恶意文件提供的功能,实施下一步攻击。

形成文件上传漏洞的要素

(1)被攻击的动态网站或web应用系统具备文件上传功能,并开放给普通用户使用。
(2)软件代码中没有对普通用户上传的文件进行合法性判定,使非法文件得以上传。
(3)上传后的非法文件被服务器当做合法文件,正常解析执行。

文件上传漏洞的防护

1、文件类型校验

文件从客户端上传到服务器是,根据HTTP协议,浏览器会强制在Header中增加MIMETYPE,用来识别文件类型。
服务器动态脚本可以通过判定文件的MIMETYPE字段内容,检查上传的文件是否合法。
在这里插入图片描述
在这里插入图片描述
上图是对上传文件类型的检查。

2、文件名后缀校验

防护原理:文件从客户端上传到服务器后,服务器动态脚本可以获取文件名称。通过检查文件后缀是否满足条件,可以判定用户上传的文件是否合法。如下图:
在这里插入图片描述

3、阻止非法文件运行

防护原理:导致文件上传漏洞的根本原因在于服务器把用户上传的本应是数据的内容当做代码执行的。
防护策略:一般来说,用户上传的内容都会被存储到特定的一个文件夹下,如upload。要防止数据被当做代码执行,我们可以限制web server对于特定文件夹的行为。
防护方法:
以Apache为例:在默认情况下,所有.php文件被当做代码来执行;对于html,css,js文件,则会直接交给客户端浏览器执行;对于一些资源文件,如txt、doc、rar等,会以文件下载的方式传送到客户端。
所以根据以上特性,我们可以设置服务器程序的接口,让用户上传的文件仅当做资源和数据,而不能当做代码来执行。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值