zoukankan      html  css  js  c++  java
  • 文件上传漏洞学习 6-10

    pass-06和pass-07:文件名后缀名后加空格或点

    原理:

    Win下xx.jpg[空格] 或xx.jpg.这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点 此处会删除末尾的点,但是没有去掉末尾的空格,因此上传一个.php空格文件即可。

    用burp抓包,将上传的文件名后缀名php后面加  空格 或者 点

    他们的代码 对比前面都是 缺少去除 文件名末尾的点和首尾去空的原因

    pass-08:          ::$DATA绕过

    NTFS文件系统包括对备用数据流的支持。这不是众所周知的功能,主要包括提供与Macintosh文件系统中的文件的兼容性。

    备用数据流允许文件包含多个数据流。每个文件至少有一个数据流。在Windows中,此默认数据流称为:$ DATA。

    上传.php::$DATA绕过。(仅限windows)

    不是众所周知的更能所以 程序员在写黑名单的时候会忽略

    burp抓包修改后缀名为.php::$DATA

    相比之前的代码 缺少了这一行

     $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA

    pass-09:      一:.空格.绕过     二:Apache陌生后缀解析漏洞

    一:点空格点  

    move_upload_file的文件名直接为用户上传的文件名,我们可控。且会删除文件名末尾的点和首尾去空

    burp抓包 改文件后缀       .php.空格.

    二:Apache陌生后缀解析漏洞

    burp抓包  把 文件后缀改为    .jpg.php.asd  或者  .php.asd       试了一下asd可以换成其他的

    Apache 读取后缀名是从后往前读的  不认识asd后缀 继续读前面的php后缀

    pass-10  :   双写后缀名绕过    代码敏感后缀名替换为空 

    $is_upload = false;
    $msg = null;
    if (isset($_POST['submit'])) {
        if (file_exists(UPLOAD_PATH)) {
            $deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");
    
            $file_name = trim($_FILES['upload_file']['name']);
            $file_name = str_ireplace($deny_ext,"", $file_name);
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;        
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
        }
    }

     将敏感文件替换为空字符串

    直接上传phpinfo.php  结果为:

    burp抓包把后缀名改为

    .phpphp还是被换掉

    改为.pphphp可以了

  • 相关阅读:
    如何用Spring Security OAuth2 实现登录互踢,面试必学
    你确定Java注释不会被执行吗?80%的人都不知道
    常见Java性能问题一招帮你解决,80%的人都不知道
    Spring中的反射与反射的原理,案例详解
    10大Java方向最热门的开源项目,高薪必学
    2020最新Python学习常见十大问题总结
    Java源码系列-LinkedHashMap,高薪面试必学
    Java8的Lambda表达式你了解吗?80%的都不知道
    分块矩阵
    矩阵--逆矩阵和伴随矩阵
  • 原文地址:https://www.cnblogs.com/liqik/p/10711912.html
Copyright © 2011-2022 走看看