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

    1.js绕过

      当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台脚本检测扩展名。

      JS=JavaScript在数据被提交到服务器之前验证数据。因为js验证用于客户端本地的验证,所以你如果上传一个不正确的文件格式,它的判断会很快就会显示出来你上传的文件类型不正确,那我们就能判断出该网站是使用的js验证

      绕过方法:

        上传文件抓包修改后缀名就可

    2.Content-Type检测文件类型—绕过 (服务端检测绕过(MIME类型检测)

      绕过方法:

        1.上传一个正确的文件。抓取数据包,查看Content-Type

        2.上传自己的文件,抓取数据包。修改Content-Type:image/jpeg

    3.文件后缀名大小写混淆上传php文件 

      绕过方法:

        1.抓取数据包修改上传文件后缀名的大小写字母即可。

        2.多种混合:

          源码:

            

          绕过方法:

            1.根据源码修改后缀名为xx.php5

            2.修改Content-Type为:image/jpeg  

            3修改Content-Type: multipart/form-data 为Content-Type: Multipart/form-data即可

    4.%00截断

        绕过方法:

          

            1.修改上传文件后缀名为可以上传的jsp

            2.修改Content-Type为:image/jpeg

            3.修改路径 upload为 upload/1.php 空格 然后使用hex把空格修改成00 直接截断

    5.服务端检测绕过(文件扩展名检测)

        (1)黑名单检测

              1. 文件名大小写绕过

                用像 AsP,pHp 之类的文件名绕过黑名单检测

              2. 名单列表绕过

                用黑名单里没有的名单进行攻击,比如黑名单里没有 asa 或 cer 之类

              3. 特殊文件名绕过

                比如发送的 http 包里把文件名改成 test.asp. 或 test.asp_(下划线为空格),这种命名方式 在 windows 系统里是不被允许的,所以需要在 burp 之类里进行修改,然后绕过验证后,会 被 windows 系统自动去掉后面的    点和空格,但要注意 Unix/Linux 系统没有这个特性。

              4.0x00 截断绕过

                在扩展名检测这一块目前我只遇到过 asp 的程序有这种漏洞,给个简单的伪代码 name= getname(httprequest)//假如这时候获取到的文件名是 test.asp.jpg(asp 后面为 0x00) type=gettype(name) //而在 gettype()函     数里处理方式是从后往前扫描扩展名,所以判断为 jpg if(type == jpg) SaveFileToPath(UploadPath.name,name)//但在这里却是以 0x00 作为文件名截断 //最后以 test.asp 存入路径里

              5..htaccess 文件攻击
                配合名单列表绕过,上传一个自定义的.htaccess,就可以轻松绕过各种检测

                 .htaccess文件创建:

                    创建一个123.htaccess文件,内容为:

                                <FilesMatch "pangya.jpg">

                                SetHandler application/x-httpd-php
                              </FilesMatch>

                     然后在创建一个pangya.jpg的一句话 图片+一句话都可以

              6. 解析调用/漏洞绕过 这类漏洞直接配合上传一个代码注入过的非黑名单文件即可,再利用解析调用/漏洞

          (2)白名单检测

                1.0x00 截断绕过

                 用像 test.asp%00.jpg 的方式进行截断,属于白名单文件,再利用服务端代码的检测逻辑 漏洞进行攻击。

                2. 解析调用/漏洞绕过

                这类漏洞直接配合上传一个代码注入过的白名单文件即可,再利用解析调用/漏洞

    6.服务端检测绕过(文件内容检测)

           1.文件幻数检测

           2.文件相关信息检测

              绕过方法:

                图像文件相关信息检测常用的就是 getimagesize()函数 只需要把文件头部分伪造好就 ok 了,就是在幻数的基础上还加了一些文件信息 有点像下面的结构

                GIF89a (...somebinarydataforimage...) <?phpphpinfo();?> (...skippingtherestofbinarydata...)

           3.文件加载检测

    7.服务器解析漏洞的使用

  • 相关阅读:
    Web开发中需要了解的东西
    Javascript:谈谈JS的全局变量跟局部变量
    多角度看.NET面试题
    java http大文件断点续传上传方法
    java http大文件断点续传上传问题
    java http大文件断点续传上传功能
    java http大文件断点续传上传解决方案
    java http大文件断点续传上传实例
    java http大文件断点续传上传示例
    java http大文件断点续传上传源代码
  • 原文地址:https://www.cnblogs.com/pangya/p/8921180.html
Copyright © 2011-2022 走看看