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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM