文件上传漏洞

文件上传漏洞原理:

  通常是由于对上传的文件内容和类型没有进行严格过滤和审查,攻击者可以通过上传脚本、木马获得服务器的webshell权限。

  文件上传本身没有问题,有问题的是上传的文件服务器将以哪种格式去执行。

  一般情况下,攻击者可以通过上传脚本、木马、病毒、webshell,在知道上传文件路径的情况下,加以利用。

  大部分情况下,导致文件上传漏洞的原因是对上传的文件没有进行过滤审查,还有一部分是因为服务器本身存在解析漏洞,导致上传的文件以脚本的格式去执行。

文件上传的常见绕过方式和防御方式:

  防御方式:

    1.限制文件上传的路径为不可执行

    2.检验文件后缀名

    3.使用白名单和黑名单对可上传文件进行限制

    4.对图片进行二次渲染

    5.使用随机数对文件名和文件路径进行更改

    6.检查http头信息中的content-type字段,看是否是可上传的文件类型

    7.分析头信息内容,不同的文件类型mime信息是不一样的

  

  绕过方式:

    1.从客户端绕过:上传文件时抓包、将文件类型改为可以上传的文件类型。

    2.从服务器端绕过:将http头信息中的content-type字段改为可以上传的文件类型

    3.结合其他漏洞进行绕过,解析漏洞、文件包含漏洞等

    4.利用一些WAF规则进行绕过

      ①WAF会限制检验的文件的大小;例如,WAF的过滤规则是仅检验文件的4M内容,那么我们可以选择大于4M的文件进行上传,在文件尾部插入脚本代码,WAF将不会检测

      ②WAF检验post请求的数据:有些waf会检验post传来的参数,那么我们可以通过抓包,将post请求更改为get请求。

文件上传漏洞的三个条件是:文件可上传、上传文件可执行、上传路径可知。所以我们在防御的时候可以通过这三个条件去防御,文件上传是服务器必须的功能,这个不能限制,所以可以在其他两个方面进行限制,限制上传的文件不可执行、使用随机数对文件路径和文件名进行重命名

 

文件上传漏洞是最直接的漏洞,因为它可以通过上传webshell去操控服务器,危害很大。

 

posted @ 2020-06-01 15:38  一九天  阅读(298)  评论(0编辑  收藏  举报