文件上传绕过姿势总结

文件上传绕过姿势总结

  1. 客户端(前端js验证):

    抓包,修改后缀,重放绕过。

  2. mime(扩展类型限制):

    白名单类型限制,可以像第一种一样抓正确的包、修改后缀、重放绕过。也可以直接修改content-type类型

  3. 黑名单过滤:

  4. .php、php3、phtml在apche中以php格式解析

  5. .htaccess后缀,.htaccess是apche配置文件,上传.htaccess语句,让任何文件都被php解析

    SetHandler application/x-httpd-php
    
  6. 大小写绕过

  7. 尾部空格(Windows系统特性,自动去除尾部小数点和空格)

    将文件改为1.php .(空格加点),传进去后会删除空格和.保留1.php文件名。(因为bp不能末尾加空格无用,所以换成空格加.)

  8. 尾部小数点

    同理:没有对后缀名进行去"."处理,在bp中改为1.php. ,传成功后就会自动删除“.”

  9. 两次去空格和小数点:

    代码中有过滤空格和小数点,但是是一次性的,所以我们写两次空格加小数点,代码过滤一次,传进去后,系统自动去除一次

  10. "::$DATA"绕过:

    没有对后缀名进行去”::$DATA”处理,利用windows特性,可在后缀名中加” ::$DATA”绕过:

    NTFS文件系统包括对备用数据流的支持。这不是众所周知的功能,主要包括提供与Macintosh文件系统中的文件的兼容性。备用数据流允许文件包含多个数据流。每个文件至少有一个数据流。在Windows中,此默认数据流称为:$ DATA。
    
  11. 见到替换空字符,就想到双写绕过:

    例:.pphphp后缀

  12. %00隔断():

    %00来隔断后面的随机字符

  13. 时间差,竞争关系:

    上传木马文件会在缓存中停留几毫秒然后才被删除掉,可以利用这个时间差执行操作。

    1. 构建访问包不断访问

    2. 构建上传包,不断发送木马(这个木马主要内容为在抓住时间差,在当前路径生成新的木马文件)

      <?php fputs(fopen('shell2.php','w'),'<?php @eval($_POST["x"])?>’);?>
      
    3. 爆破,先不断访问的同时不断发包,抓住时间差,生成新木马文件。

posted @ 2020-05-03 16:20  admin刍狗  阅读(532)  评论(0编辑  收藏  举报