zoukankan      html  css  js  c++  java
  • 文件上传漏洞及其绕过

    1.前端JS验证

    基于本地验证文件是否符合要求:直接将JavaScript禁用。或者burp抓包后修改后缀,将php文件后缀现先改为jpg,burp抓包后后缀改回php。

    2.MIME 类型验证

    burp抓包将Content-type类型修改为image/jpeg,image/png等

    3.黑名单验证

    ①寻找没有过滤的类型:

    phtml php3 php4 php5 PHP phtm

    例如 phtml php3 php4 php5 PHP phtm这些后缀名首先得让服务器支持这些解析为php脚本运行,httpd.conf配置文件中可以查看设置。

    从图中可以看到,我安装的Apache默认解析php和phtm的,如果黑名单并没有过滤phtm,就可以上传phtm的木马。

    ②大小写绕过

    例如phP,黑名单上不存在的话就可以绕过,过滤严格的话一般会用个strtolower()把后缀全变为小写,那个时候就不行了。

    4.检查文件内容

    ①getimagesize() 函数用于获取图像信息:

    构造图片马,或者用winhex在图片后边添加上木马的内容,一个原理。

    ②检验关键字

    例如<?php

    <script language="php">eval($_POST['cmd']);</script>  
    

    ③检验文件大小

    没啥用,一般上传的木马超不过那个大小。

    5。00截断

    计算机处理文件遇到0x00(代表NULL)则会自动截断后边的内容,而较低版本的php就会因为这个出现漏洞。
    一般分为两种那个情况:

    ①可以自己构造上传路径。

    burp抓包在上传路径后边加上muma.php%00,然后将%00进行url编码(crtl+shift+u),(浏览器还要进行url解码,所以先编码后解码,保证原来的字符不变)上传。

    ②不知道上传路径:

    文件名改为muma.php+.jpg,这个+ 其实就是个标识作用,改别的字符也行。burp抓包后,hex打开,将+的数值改为00,实际上代表就是0x00.
    上传。不过00截断很旧了已经,现在基本找不到这种漏洞了。

    6. .htaccess上传

    Apache才有效的一个配置文件,直接配置Apache达到为所欲为的目的,默认开启。如果不开启,找到httpd.conf配置文件:
    Options FollowSymLinks

    AllowOverride None
    改为:
    Options FollowSymLinks

    AllowOverride All
    即完成了开启。

    在有的时候黑名单过滤不严格,就会漏掉过滤.htaccess文件 。

    这段代码就是让以ma.jpg的文件以php文件执行。上传图片后,不管图片名字有没有被自动重命名,访问的图片的地址看最后会有服务器上图片的名字,然后用.htaccess进行配置即可。
    也可以直接Addtype application/x-httpd-php .jpg.所有的jpg都会以php脚本运行。

    7.白名单检测扩展名

    最难绕过的方法。绕过方法请参考其他方法。

    8.双写绕过

    如果对文件的内容例如<?php用str_replace()使其变为空,就可以构造特殊的内容例如<?p<?phphp,过滤后就变为了<?php,达到了绕过的目的。

    不过我觉得没啥用,他要是循环过滤那不就完了,写代码的时候肯定不会只给你过滤一次啊。

  • 相关阅读:
    hi.baidu.com 百度流量统计
    Autofac is designed to track and dispose of resources for you.
    IIS Manager could not load type for module provider 'SharedConfig' that is declared in administration.config
    How to create and manage configuration backups in Internet Information Services 7.0
    定制swagger的UI
    NSwag在asp.net web api中的使用,基于Global.asax
    NSwag Tutorial: Integrate the NSwag toolchain into your ASP.NET Web API project
    JS变量对象详解
    JS执行上下文(执行环境)详细图解
    JS内存空间详细图解
  • 原文地址:https://www.cnblogs.com/zaqzzz/p/9395409.html
Copyright © 2011-2022 走看看