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去操控服务器,危害很大。

  • 相关阅读:
    三元操作符的类型务必一致
    a++ 和 ++a 的区别
    TCP/IP四层协议模型与ISO七层模型
    CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置
    修改gcc/g++默认include路径
    js中Math.random()生成指定范围数值的随机数
    在 QML 中创建 C++ 导入类型的实例
    QML从文件加载组件简单示例
    Android插件化开发---执行未安装apk中的Service
    游戏开发热门技术浅析
  • 原文地址:https://www.cnblogs.com/bulrushlw/p/10620703.html
Copyright © 2011-2022 走看看