zoukankan      html  css  js  c++  java
  • ueditor的上传文件漏洞(c#)

    项目中使用了ueditor,安全测试发现一个漏洞,涉及漏洞的文件名字为UploadHandler.cs,其中有一个方法:

        private bool CheckFileType(string filename)
        {
            var fileExtension = Path.GetExtension(filename).ToLower();
            return UploadConfig.AllowExtensions.Select(x => x.ToLower()).Contains(fileExtension);
        }

    这个方法是存在漏洞的,虽然前端做了判断,但是通过中间人攻击方法,是可以绕过的。

    改造该方法如下:

        /// <summary>
        /// 检查文件类型
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        private bool CheckFileType(string filename)
        {
            var fileExtension = Path.GetExtension(filename).ToLower();
            // .jpg  
            // .jpg.aspx
            bool result= Array.IndexOf(UploadConfig.AllowExtensions, fileExtension)>-1;
            return result;
            //return UploadConfig.AllowExtensions.Select(x => x.ToLower()).Contains(fileExtension);
        }

    看看就应该明白了,虽然上传允许的为.jpg,但是由于判断方法的不严谨,仍然可以绕过上传其它任意类型文件,使用Array.IndexOf就可以有效避免了。

  • 相关阅读:
    [GO]使用map生成 json
    [GO]通过结构体生成json
    [GO]正则表达式
    [GO]字符串的使用
    [GO]revoer的应用
    [GO]panic的应用
    微信公众平台自定义菜单及高级接口PHP SDK
    论MySQL何时使用索引,何时不使用索引
    MYSQL explain详解
    Mysql两种存储引擎的优缺点
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/5519332.html
Copyright © 2011-2022 走看看