精华内容
下载资源
问答
  • 大多数情况下,我们都是通过扩展名来识别一个文件的类型的,比如我们看到一个.txt类型的文件我们就知道他是一个纯文本文件。但是,扩展名是可以修改的,当一个文件的扩展名被修改过,怎么识别一个文件的类型呢?这就...

    文章已经收录于JAVA知识大全:GitHub: JavaPointer

    魔数有什么用

    大多数情况下,我们都是通过扩展名来识别一个文件的类型的,比如我们看到一个.txt类型的文件我们就知道他是一个纯文本文件。但是,扩展名是可以修改的,当一个文件的扩展名被修改过,怎么识别一个文件的类型呢?这就用到了我们提到的“魔数”。很多类型的文件,其起始的几个字节的内容是固定的(或是有意填充,或是本就如此)这几个字节的内容也被称为魔数,因为根据这几个字节的内容就可以确定文件类型。有了这些魔术数字,我们就可以很方便的区别不同的文件。

    什么是魔数?

    每个class文件的头4个字节称为魔数(Magic Number),其值为:0xCAFEBABE,它的唯一作用是用于确定这个文件是否为一个能被虚拟机接受的class文件。使用魔数而不是扩展名来进行识别主要是基于安全的考虑,因为文件的扩展名可以随意地被改动。

    根据文件魔数(magic number)判断文件类型

    可根据MultipartFile读取文件字节
    /**
       * 根据multipartFile读取文件字节
       * @param multipartFile
       * @return
       */
    
    public static String getFileType(MultipartFile multipartFile) throws IOException {
        String res = null;
        try {
            InputStream inputStream = multipartFile.getInputStream();
            is = (FileInputStream) inputStream;
            byte[] b = new byte[28];
            is.read(b, 0, b.length);
       /**
       * 得到上传文件十六进制文件头
       */
            String fileCode = bytesToHexString(b);
            Iterator<String> keyIter = FILE_TYPE_MAP.keySet().iterator();
            while (keyIter.hasNext()) {
                String key = keyIter.next();
                // 对比常用文件魔数值
                if (key.toLowerCase().startsWith(fileCode.toLowerCase())
                        || fileCode.toLowerCase().startsWith(key.toLowerCase())) {
                    res = FILE_TYPE_MAP.get(key);
                    break;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (is != null) {
                is.close();
            }
        }
        return res;
    }
    /**
     *   * 得到上传文件的文件头
     *   * @param src
     *   * @return
     *  
     */
    
    public static String bytesToHexString(byte[] src) {
        StringBuilder stringBuilder = new StringBuilder();
        if (src == null || src.length <= 0) {
            return null;
        }
        for (int i = 0; i < src.length; i++) {
            int v = src[i] & 0xFF;
            String hv = Integer.toHexString(v);
            if (hv.length() < 2) {
                stringBuilder.append(0);
            }
            stringBuilder.append(hv);
        }
        return stringBuilder.toString();
    }
    

    #####根据上传文件路径得到文件字节,对比魔数值

    public static String getFileType(String filePath) throws IOException {
        String res = null;
        try {
            FileInputStream is = new FileInputStream(filePath);
            byte[] b = new byte[28];
            is.read(b, 0, b.length);
            String fileCode = bytesToHexString(b);
            Iterator<String> keyIter = FILE_TYPE_MAP.keySet().iterator();
            while (keyIter.hasNext()) {
                String key = keyIter.next();
                // 验证前5个字符比较
                if (key.toLowerCase().startsWith(fileCode.toLowerCase())
                        || fileCode.toLowerCase().startsWith(key.toLowerCase())) {
                    res = FILE_TYPE_MAP.get(key);
                    break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (is != null) {
                is.close();
            }
        }
        return res;
    }
    
    /**
     *   * 得到上传文件的文件头
     *   * @param src
     *   * @return
     *  
     */
    
    public static String bytesToHexString(byte[] src) {
        StringBuilder stringBuilder = new StringBuilder();
        if (src == null || src.length <= 0) {
            return null;
        }
        for (int i = 0; i < src.length; i++) {
            int v = src[i] & 0xFF;
            /**
             *此方法返回的字符串表示的无符号整数参数所表示的值以十六进制(基数为16)
             **/
            String hv = Integer.toHexString(v);
            if (hv.length() < 2) {
                stringBuilder.append(0);
            }
            stringBui lder.append(hv);
        }
        return stringBuilder.toString();
    }
    
    常见文件类型魔数
    /**
     *   常用文件格式
     *  
     */
    private static void getAllFileType() {
        FILE_TYPE_MAP.put("ffd8ffe000104a464946", "jpg"); // JPEG (jpg)
        FILE_TYPE_MAP.put("89504e470d0a1a0a0000", "png"); // PNG (png)
        FILE_TYPE_MAP.put("47494638396126026f01", "gif"); // GIF (gif)
        FILE_TYPE_MAP.put("49492a00227105008037", "tif"); // TIFF (tif)
        FILE_TYPE_MAP.put("424d228c010000000000", "bmp"); // 16色位图(bmp)
        FILE_TYPE_MAP.put("424d8240090000000000", "bmp"); // 24位位图(bmp)
        FILE_TYPE_MAP.put("424d8e1b030000000000", "bmp"); // 256色位图(bmp)
        FILE_TYPE_MAP.put("41433130313500000000", "dwg"); // CAD (dwg)
        FILE_TYPE_MAP.put("3c21444f435459504520", "html"); // HTML (html)
        FILE_TYPE_MAP.put("48544d4c207b0d0a0942", "css"); // css
        FILE_TYPE_MAP.put("696b2e71623d696b2e71", "js"); // js
        FILE_TYPE_MAP.put("7b5c727466315c616e73", "rtf"); // Rich Text Format (rtf)
        FILE_TYPE_MAP.put("38425053000100000000", "psd"); // Photoshop (psd)
        FILE_TYPE_MAP.put("46726f6d3a203d3f6762", "eml"); // Email [Outlook Express 6] (eml)
        FILE_TYPE_MAP.put("d0cf11e0a1b11ae10000", "doc"); // MS Excel 注意:word、msi 和 excel的文件头一样
        FILE_TYPE_MAP.put("5374616E64617264204A", "mdb"); // MS Access (mdb)
        FILE_TYPE_MAP.put("252150532D41646F6265", "ps");
        FILE_TYPE_MAP.put("255044462d312e350d0a", "pdf"); // Adobe Acrobat (pdf)
        FILE_TYPE_MAP.put("2e524d46000000120001", "rmvb"); // rmvb/rm相同
        FILE_TYPE_MAP.put("464c5601050000000900", "flv"); // flv与f4v相同
        FILE_TYPE_MAP.put("00000020667479706d70", "mp4");
        FILE_TYPE_MAP.put("49443303000000002176", "mp3");
        FILE_TYPE_MAP.put("000001ba210001000180", "mpg"); //
        FILE_TYPE_MAP.put("3026b2758e66cf11a6d9", "wmv"); // wmv与asf相同
        FILE_TYPE_MAP.put("4d546864000000060001", "mid"); // MIDI (mid)
        FILE_TYPE_MAP.put("504b0304140000000800", "zip");
        FILE_TYPE_MAP.put("526172211a0700cf9073", "rar");
        FILE_TYPE_MAP.put("235468697320636f6e66", "ini");
        FILE_TYPE_MAP.put("4d5a9000030000000400", "exe");// 可执行文件
        FILE_TYPE_MAP.put("3c25402070616765206c", "jsp");// jsp文件
        FILE_TYPE_MAP.put("4d616e69666573742d56", "mf");// MF文件
        FILE_TYPE_MAP.put("3c3f786d6c2076657273", "xml");// xml文件
        FILE_TYPE_MAP.put("494e5345525420494e54", "sql");// xml文件
        FILE_TYPE_MAP.put("7061636b616765207765", "java");// java文件
        FILE_TYPE_MAP.put("406563686f206f66660d", "bat");// bat文件
        FILE_TYPE_MAP.put("1f8b0800000000000000", "gz");// gz文件
        FILE_TYPE_MAP.put("6c6f67346a2e726f6f74", "properties");// bat文件
        FILE_TYPE_MAP.put("cafebabe0000002e0041", "class");// bat文件
        FILE_TYPE_MAP.put("49545346030000006000", "chm");// bat文件
        FILE_TYPE_MAP.put("04000000010000001300", "mxp");// bat文件
        FILE_TYPE_MAP.put("504b0304140006000800", "docx");// docx文件
        FILE_TYPE_MAP.put("6431303a637265617465", "torrent");
        FILE_TYPE_MAP.put("cafebabe0000002e00", "class");
        FILE_TYPE_MAP.put("57415645", "wav");
        FILE_TYPE_MAP.put("41564920", "avi");
        FILE_TYPE_MAP.put("6D6F6F76", "mov"); // Quicktime (mov)
        FILE_TYPE_MAP.put("FF575043", "wpd"); // WordPerfect (wpd)
        FILE_TYPE_MAP.put("CFAD12FEC5FD746F", "dbx"); // Outlook Express (dbx)
        FILE_TYPE_MAP.put("2142444E", "pst"); // Outlook (pst)
        FILE_TYPE_MAP.put("AC9EBD8F", "qdf"); // Quicken (qdf)
        FILE_TYPE_MAP.put("E3828596", "pwl"); // Windows Password (pwl)
        FILE_TYPE_MAP.put("2E7261FD", "ram"); // Real Audio (ram)
        FILE_TYPE_MAP.put("null", null); // null
    }
    
    测试结果
    public static void main(String[] args) throws Exception {
        String type = getFileType("/Users/mac/Pictures/WechatIMG8.jpeg");
        System.out.println("Except : " + type);
    }
    

    #####测试结果如下:
    微信图片_20210315220527.jpg

    Ps:对于没有魔数值得文件可以结合文件后缀来判断文件类来判断

    /**
     * 处理没有魔数的文件类型
     *
     * @param fileName
     * @return
     */
    public static String getNotMargicFileType(String fileName) {
        if (!StringUtils.isEmpty(fileName)) {
            String suffixType = fileName.substring(fileName.lastIndexOf(".") + 1).trim().toLowerCase();
            return suffixType;
        }
        return null;
    }
    

    GitHub: https://github.com/Rise1024/JavaPointer
    java后端知识宇宙汇集,java基础(面向对象、集合、多线程)、框架(spring、springboot、doubbo、springcloud)、数据库(mysql 、oracle)、消息中间件(rabbitmq、kafka)等后端知识 正更新中@@

    展开全文
  • 文件上传-绕过黑名单验证

    千次阅读 2019-05-19 20:59:59
    1、基于白名单验证:只针对白名单中有的后缀名,文件才能上传成功。 2、基于黑名单验证:只针对黑名单中没有的后缀名,文件才能上传成功。 基于黑名单验证代码片段分析 对于黑名单中的后缀名筛选。绕过黑名单...

    基于文件后缀名验证介绍
    对于文件上传模块来说,尽量避免上传可执行的脚本文件。为了防止上传脚本需要设置对应的验证方式。
    基于文件后缀名验证方式分类:
    1、基于白名单验证:只针对白名单中有的后缀名,文件才能上传成功。
    2、基于黑名单验证:只针对黑名单中没有的后缀名,文件才能上传成功。
    基于黑名单验证代码片段分析
    对于黑名单中的后缀名筛选。绕过黑名单可以通过寻找"漏网之鱼",寻找某些可以被作为脚本执行同时也不在黑名单中。
    在这里插入图片描述
    Burpsuite绕过黑名单验证
    利用Burpsuite工具截断HTTP请求,利用Intruder模块进行枚举后缀名,寻找黑名单中没有过滤的后缀名。
    在这里插入图片描述

    绕过黑名单验证(.htaccess文件)

    .htaccess文件介绍
    htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许、阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
    其中.htaccess文件内容:
    SetHandler application/x-httpd-php
    设置当前所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会被当做PHP执行。不符合则报错。
    配置文件http.conf
    在Apache中如果需要启动.htaccess,必须在http.conf中设置AllowOverride
    在这里插入图片描述
    黑名单过滤代码举例
    在这里插入图片描述
    黑名单中,没有对.htaccess进行过滤,可以直接上传.htaccess来设置使用php解析任意文件。
    文件内容:SetHandler application/x-httpd-php

    绕过黑名单验证(大小写绕过)

    大小写绕过原理
    Windows系统下,对于文件名中的大小写不敏感,例如:test.php和TeSt.PHP是一样的。
    Linux系统下,对于文件名中的大小写敏感。例如:test.php和TesT.php就是不一样的。
    此时可以通过修改文件后缀,使用大小写混合的写法绕过缺少了对上传文件名获取的大小写转换的黑名单验证。

    绕过黑名单验证(空格绕过)

    空格绕过原理
    Windows系统下,对于文件名中的空格会被作为空处理,程序中的检测代码却不能自动删除空格。从而绕过黑名单。
    针对这样的情况需要使用Burpsuite截断HTTP请求之后,修改对应的文件名,添加空格。

    绕过黑名单验证(.号绕过)

    .号绕过原理
    Windows系统下,文件名后缀最后一个点会被自动去除。
    例如:
    Windows下新建一个1.php.文件,查看。
    此时可以通过修改上传文件的后缀,使用*.php.的写法绕过缺少了对去除文件名最后一个点的处理的验证进行绕过。

    绕过黑名单验证(特殊符号绕过)

    特殊符号绕过原理
    Windows系统下,如果上传的文件名中test.php::DATAtest.phpWindows1.php::DATA会在服务器上生成一个test.php的文件,其中内容和所上传内容相同,并被解析。 例如: 在Windows系统下新建一个文件名为1.php::DATA的文件,查看效果。但是在Windows下新建的文件名中包含特殊符号不能成功新建。
    当验证代码黑名单过滤中没有过滤掉 ::DATA1.php::DATA,此时就可以通过上传文件后缀为1.php::DATA格式的文件进行验证绕过。

    绕过黑名单验证(路径拼接绕过)

    路径拼接绕过原理
    在没有对上传文件进行重命名的情况下,用户可以自定义文件名并在服务器中上传新建,就会造成对应的绕过黑名单。
    例如:
    用户新建 1.php.+空格+.
    deldot删除最后一个点之后,不再进行删除,trim删除空格,那么最终上传的文件名为1.php.
    利用Windows自动去除最后一个点,导致成功上传1.php。

    绕过黑名单验证(双写绕过)

    双写绕过原理
    代码编写过程中,只对黑名单中的内容进行控替换,因为只替换一次所以造成双写绕过。
    例如:
    在这里插入图片描述
    str_ireplace()函数替换字符串中的一些字符串(不区分大小写)。
    该函数必须遵循下列规则:
    如果搜索的字符串是一个数组,那么它将返回一个数组。
    如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换。
    如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符进行替换
    如果是对一个数组进行查找,但只对一个字符串进行替换,那么替换字符串将对所有查找到的值起作用。
    注释:该函数不区分大小写。请使用str_replace()函数来执行区分大小写的搜索。
    注释:该函数是二进制安全的。

    Webshell生成工具介绍

    Webacoo上传Webshell
    WeBaCoo生成Webshell: webacoo -g -o a.php
    上传Webshell
    连接Webshell: webacoo -t -u Webshell地址
    在这里插入图片描述
    weevely生成Webshell文件
    生成:weenely generate 密码 路径 文件名
    连接:weevely shell文件地址 密码
    在这里插入图片描述
    公开的Webshell
    上传网上公开的一些Webshell
    在这里插入图片描述

    展开全文
  • Shop靶机上传漏洞实践 绕过白名单验证 首先找到shop靶机的存在上传的地方,即管理员的后台,商城的核心设置,页面如下: 先上传两种不同格式的文件,看看该上传上传文件都做了什么处理: 第一步:上传...

    Shop靶机上传漏洞实践  绕过白名单验证

     

    首先找到shop靶机的存在上传的地方,即管理员的后台,商城的核心设置,页面如下:

    先上传两种不同格式的文件,看看该上传对上传的文件都做了什么处理:

    第一步:上传图片文件

     

    图片可以上传成功,

    第二步,上传asp文件:

    可以看到asp文件上传不成功。

    接下来分析一下,该上传可能做了哪些过滤

    第一种过滤方式: 客户端检测:前端验证,对后缀名验证  

    那我们把1.asp改成1.jpg看看能不能上传成功,如果能上传成功,那说明该上传只在客户端进行后缀名的过滤。

     

    看来不行,这里不只是对后缀名做了检测,还对文件的大小或者文件的内容做了检测

    我们在想一下服务器端可能存在的验证方式:

    第一种:黑名单验证

    第二种:白名单验证

    我们先上传1.jpg抓包看看文件类型(1.jpg是1.asp改的)

    可以看到文件类型是图片类型,但是就是上传不上去,所以可能是对文件内容做了检测或者文件的大小,那么我们把图片绑定上木马看看能不能上传成功

     

    发现文件上传成功了,  所以我们可以上传图片木马 先打开图片木马  看看  木马的左边的括号是不是被转换掉了,如果是再多加几个

    抓包如下:

     

    发现我们的一句话木马也在,那我们用00截断改一下文件名试试

    将空格改成00  然后上传

    发现上传成功但是是图片格式  这对我们来说是没有用的  因为菜刀要用asp文件,我们看到这里有文件路径  我们再从文件路径下手试试

     

     

     

     

    发现上传成功而且把路径也给显示出来了  那我们就很好用中国菜刀进行绑定了

    打开中国菜刀

     

     

    绑定成功!

    展开全文
  • 文件上传第二关

    2020-11-02 13:36:37
    文件上传第二关 我看到了一个方法是直接修改js代码,让php文件也能上传,但是并没有找到允许... 此关与第一关不同,第一关只要禁用js代码就可以绕过js检测文件的类型,第二关是通过限制上传类型来设置上传白名单。 ...

    文件上传第二关
    我看到了一个方法是直接修改js代码,让php文件也能上传,但是并没有找到允许文件格式的js代码。
    此关与第一关不同,第一关只要禁用js代码就可以绕过js检测文件的类型,第二关是通过限制上传类型来设置上传白名单。在这里插入图片描述只需要用burp修改一下mime就能上传成功,但是有时候用蚁剑会连接不成功,原因在于要在蚁剑上要修改成base64的格式

    展开全文
  • 文件上传漏洞防御

    2019-08-13 15:19:24
    1.文件上传的目录设置为不可执行 只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响,因此这一点至关重要。 2.判断文件类型 在判断文件类型时,可以结合使用MIME Type、...
  • 文件上传漏洞的修复

    2021-01-09 19:42:47
    文章目录文件上传目录设置为不可执行权限判断文件类型(白名单)使用随机数、时间戳改写文件名和文件路径单独设置文件服务器域名小结 在上一篇的文件上传漏洞的文章中,我们提到过"文件上传"的功能本身是没有问题的...
  • 文件上传解析漏洞

    2021-03-13 15:33:37
    白名单:只允许白名单上的内容。例如只允许上传jpeg、png、gif后缀的文件,后端会检测文件的类型 在文件上传解析漏洞中,后缀名很重要,后端可能会更改前缀名,但后缀名一般不会更改。 先上传一个JPG文件,使用Bur
  • 原标题:Web安全:文件上传漏洞一般将文件上传归类为直接文件上传与间接文件...间接文件上传就是服务器对用户上传的文件使用了安全策略:第一种安全策略是在程序代码中设置黑名单或者白名单;第二种安全策略是在We...
  • 文章来源:计算机与网络安全一般将文件上传归类为直接文件上传与间接文件上传。...间接文件上传就是服务器对用户上传的文件使用了安全策略:第一种安全策略是在程序代码中设置黑名单或者白名单;第二种安全策略是在...
  • 设计安全的文件上传

    2017-10-17 11:22:00
    1、文件上传的目录设置为不可执行。 2、判断文件类型,(使用白名单,黑名单不可靠) 3、使用随机数改写文件名和文件路径 4、单独设置文件服务器域名。 转载于:...
  • 文件上传+解析漏洞

    2018-12-19 16:50:00
    防御:设置白名单,对用户上传文件进行过滤限制 常用攻击方法: 1.结合服务器解析漏洞上传恶意文件(最后总结了一下常见服务器解析漏洞,不全,欢迎大家随时来补充) 2.利用图片马绕过对文件内容检测的防御方法...
  • 检查上传文件扩展名白名单,不属于白名单内,不允许上传;【前端和后端都要做好校验】上传文件的目录必须是http请求无法直接访问到的。如果需要访问的,必须上传到其他(和web服务器不同的)域名下,并设置该目录为不...
  • 分为基于白名单验证和基于黑名单验证。 黑名单可通过枚举绕过(bp intruder) .htaccess文件: 是Apache服务器中的一个配置文件,负责相关目录的网页配置。 可以上传.htaccess文件,内容为SetHandler application/x-...
  • 服务器对文件进行了白名单设置,允许上传zip、jpg、gif、png文件!我随便上传几张一句话木马图片,均能够上传成功,说明他只对文件的后缀进行验证。上传不难,难的是上传后找不到文件的路径,无法访问。 观察关于...
  • 设置邮件白名单后不生效,按以下步骤检查: 文件添加为附件之前是否能够正常打开 检查邮件收件人与策略设置是否匹配,收件人(包括抄送、暗送)是否在策略设置的范围内,是否“允许包含其他收件人” 打开...
  • 一、文件上传漏洞的原理 由于程序代码未对用户提交的文件...2、严格判断文件类型,使用白名单而不是黑名单; 3、使用随机数改写上传后的文件名和文件路径; 4、单独设置文件服务器及域名; 转载于:https://www...
  • 微信小程序环境下将文件上传到 OSS

    千次阅读 2019-05-30 23:35:33
    步骤 1: 配置 Bucket 跨域 客户端进行表单直传到 OSS 时,会从浏览器向 OSS 发送带有 ...步骤 2:配置外网域名到小程序的上传域名白名单中 通过 OSS 控制台查看外网域名。 登录微信小程序平台,配置小程序的...
  • 检查上传文件扩展名白名单,不属于白名单内,不允许上传;【前端和后端都要做好校验】上传文件的目录必须是http请求无法直接访问到的。如果需要访问的,必须上传到其他(和web服务器不同的)域名下,并设置该目录为不...
  • 文章目录一、前言二、Low级别1、演示三、Medium级别四、High级别 ...1、对用户可上传文件类型及进行严格控制,设置白名单,防止用户上传危险文件; 2、对上传文件进行文件名转换,防止用户直接访问到上传文件...
  • 文件上传漏洞类型汇总 1.无限制: ...2.绕过前端: (1)Javascript绕过: ...(2)白名单绕过: 例如:允许图片只允许jpg,则抓包改后缀改php为jpg (3)MIME绕过: MIME通过通过检查http包的Conte
  • 步骤 2:配置外网域名到小程序的上传域名白名单中 通过 OSS 控制台查看外网域名。 登录微信小程序平台,配置小程序的上传域名白名单。 步骤 3:使用 Web 端直传实践方案 Demo 进行上传测试 下载应用服务器代码 ...
  • 步骤 1: 配置 Bucket 跨域客户端进行表单直传到 OSS 时,会从浏览器向 OSS...步骤 2:配置外网域名到小程序的上传域名白名单中通过 OSS 控制台查看外网域名。登录微信小程序平台,配置小程序的上传域名白名单。步骤...
  • 看下js源码,设置白名单,必须为三种格式中的一种,可以用burp抓包修改一下后缀名。 可以上传一句话木马,然后菜刀连接。 function checkFile() { var file = document.getElementsByName('upload_file')[0]....
  • paramiko 第三方包 基于ssh服务 可以使用python实现ssh功能 使用前先安装 pip install paramiko 一、使用python连接linux...4.设置不提醒(把白名单加到客户端) 5.连接服务器 6.执行linux命令 7.查看输出结果...
  • 绕过黑名单验证

    千次阅读 2020-03-05 23:20:06
    Web安全攻防 学习笔记 一、绕过黑名单验证(基本都用到 BurpSuite) 1.1、基于文件后缀名验证  ...(1)基于白名单验证:只针对白名单中有的后缀名,文件才能上传成功。 (2)基于黑名单...
  • 改为使用ftp的公网地址,并且将正式环境服务器的公网ip让对方加入白名单后,可以访问了,但是,只能操作cd, ls等命令,不能执行上传文件操作 后来改为passive off后,可以上传了 原因: ftp服务器虽然没有做更改...
  • uniapp使用阿里OSS上传

    千次阅读 2020-06-02 17:39:58
    如是小程序,则需要配置小程序的上传域名白名单,具体可以看这篇文章《小程序配置域名白名单》 2.使用Web端直传实践方案Demo进行上传测试 下载应用服务器代码 将文件解压,并打开upload.js文件 修改upload.js中的...
  • 最有效的,将文件上传目录直接设置为不可执行,对于Linux而言,撤销其目录的’x’权限;实际中很多大型网站的上传应用都会放置在独立的存储上作为静态文件处理,一是方便使用缓存加速降低能耗,二是杜绝了脚本执行的...
  • 修改上传名绕过白名单,随便把cookie值删了。 三、然后发现上传文件的后缀得是黑名单中的,但又要上传后缀为php的???禁止套娃啊,喂。试着把后缀改为PHP大写的。nice又回来了,不过 四、让我们理清一下思路,...
  • 1. 最有效的,将文件上传目录直接设置为不可执行,对于Linux而言,撤销其目录的'x'权限;实际中很多大型网站的上传应用都会放置在独立的存储上作为静态文件处理,一是方便使用缓存加速降低能耗,二是杜绝了脚本执行...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

文件上传白名单设置