Bootstrap

文件上传漏洞简介

今天继续给大家介绍渗透测试相关知识,本文主要内容是文件上传漏洞简介。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、文件上传漏洞介绍

在web服务中,经常会让客户端进行文件的上传操作,这种操作经常是上传图片、上传文件等等。而这种常见的上传操作一旦被攻击者利用,上传恶意脚本代码,然后想办法使这些代码在服务器上执行,就会对服务器安全造成极大的危害,严重影响到了服务器安全。
一般来说,文件上传漏洞的形成有三个条件:
1、攻击者能够上传携带有恶意脚本代码的文件。
2、攻击者能够知道上传文件的路径和名称。
3、攻击者上传的恶意文件能够在服务端解析并执行。
一般而言,第二个条件相对比较好实现,web服务器对文件路径和名称经常需要对外发布(例如一张图片),因此对文件上传漏洞的防护主要是在于1、3条。
在这里插入图片描述

二、文件上传漏洞危害

文件上传漏洞一般是高危漏洞,通过该漏洞,可以向站点上传木马,并获得网站的shell权限。

三、文件上传漏洞类型

文件上传漏洞,按照形成机理,可以将文件上传漏洞分成以下四类:
1、代码层面造成的文件上传漏洞
代码层面造成的文件上传漏洞,即站点后台代码逻辑不严格,导致对用户上传的文件没有检测或者检测不严格,从而使得用户可以上传恶意文件或者绕过站点的检测上传恶意文件。
2、编辑器造成的文件上传漏洞
很多新闻网站、博客网站会使用一些编辑器,来方便用户编辑撰写文章,常见的编辑器有ewebeditor、fckeditor、kindeditor等等。这些编辑器,也可能存在文件上传的漏洞。
3、Web服务器解析造成的文件上传漏洞
IIS、Apache、Nginx等Web服务器,对于用户的一些上传,有时因为其解析规则的缘故,可能会造成对用户上传文件名检测的失效,进而造成文件上传漏洞。
4、CMS上传漏洞
此外,如果站点搭建时使用了一些CMS,也有可能造成文件上传漏洞,这种漏洞不是基于代码层面的,而是在CMS设计时逻辑上存在的问题。

四、文件上传漏洞检测

文件上传漏洞的检测,主要的检测方式有如下三种:
1、基于文件名的检测
文件上传漏洞最常见的检测方式即基于文件名的检测,这种检测方式采取黑名单或者白名单的方式,来限制用户上传的文件后缀名,从而造成用户即使上传恶意文件,但是由于文件后缀名的缘故,无法进行解析,进而阻止文件上传漏洞的产生。
2、基于MIME信息的检测
我们在向站点上传文件时,会附带一个MIME的信息头,该信息头标识了我们上传的文件的类型,因此有的网站会针对MIME的信息头来进行文件上传的检测。
3、基于文件内容的检测
此外,还有一些基于文件内容的检测手段。例如,如果用户上传的是一个图片,那么就尝试提取图片的长度和宽度,如果提取失败,就说明用户上传的不是一张图片;或者当用户上传其他类型的文件时,根据文件的后缀名,检测文件头信息,如果信息不匹配,也就说明该文件可能存在问题。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

;