zoukankan      html  css  js  c++  java
  • 文件上传漏洞

    文件上传漏洞原理:

      通常是由于对上传的文件内容和类型没有进行严格过滤和审查,攻击者可以通过上传脚本、木马获得服务器的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去操控服务器,危害很大。

  • 相关阅读:
    关于gitlab怎样merge request的流程
    有访问权限的gitlab如何把上面的代码clone到本地
    macpro终端打开mysql
    Hbase实验:java创建和删除table
    齐次递推式拆数学式
    一些生成函数
    圆锥表面曲线方程
    扩展欧拉降幂
    scanf读入有空格字符串
    线性筛素数的一个用途
  • 原文地址:https://www.cnblogs.com/bulrushlw/p/10620703.html
Copyright © 2011-2022 走看看