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就可以有效避免了。

  • 相关阅读:
    进程同步&&进程互斥
    CHAP4 字符串和格式化输入输出
    记录学习到的内容
    数据链路层 差错控制
    二叉树的顺序存储
    Java复习笔记
    Stream流
    函数式接口
    网络编程
    接口,多态,抽象类总结
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/5519332.html
Copyright © 2011-2022 走看看