freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

ueditor漏洞利用&源码分析详细版
2023-03-27 16:49:44
所属地 浙江省

漏洞简介

大家都说这个漏洞是上传漏洞,其实这个不是上传漏洞,是远程文件下载漏洞。

思路类似于我们打内网的时候远程wget或者certutil直接把payload或者exe下载到目标机器上,然后运行上线。

利用参考

https://www.cnblogs.com/hei-zi/p/13394764.html

这里主要讲源码的部分。

ueditor C#版本源码解析

下载好漏洞组件,进行查看

里面这个controller.ashx相当于一个控制器,也就是入口点,类似于mvc架构中的controller,和thinkphp那种模式有点类似。

打开看一下这个代码

不同的case,就是不同的条件跳转,参数从前台用?action=config等方式传入,然后进入后台,对应不同的case,即进入不同的逻辑。

别的我们先不看,先看漏洞产生的逻辑语句。

直接定位到漏洞的逻辑语句


然后这里看到有个CrawlerHandler,是new出来的

crtl键按住查看

非常好,啥也没有,这里我对c#也不是很了解,于是我又打开原本的那个文件来看

这里就找到了对应的cs文件

cs文件就是c#文件的源码,c sharp = cs

然后打开看一下

看不明白,但是结合之前

这一行,是在实体话crawlwerhander new时候通常要调用一个构造方法,也就是和CrawlerHandler同名的一个构造方法。

这个构造方法在这里

也没啥用,然后又看回去,发现一行

这里调用了一个Process方法,每一个对应的cs文件中都有一个Process方法,前台参数,后台接受参数并使用。

这里有个fetch方法,跟一下

poc中有个特殊的的点,网上很多文章没讲清楚

传过去的参数是

1.gif?.aspx

之所以为什么是1.gif?.aspx才能生效,这里还得看源码

首先这里写明了response中的content-Type是image

也就是返回包的部分


所以上传的东西必须是一个具有image文件头的东西

其次后台对于文件名的判定是通过.来判定

也就是这一行代码


就用的是这个GetFileName方法

这个方法经过我的测试

这个payload会被当成一个名为1.gif?的文件,但是后缀还是.asp,也就是按照asp来做解析

而这个文件,在前台1.gif?xxxxx按照浏览器的逻辑,?后面就是参数,因此前台解析这个http://127.0.0.1/xxx/1.gif?.asp

是当成图片文件来做解析的

该漏洞是由于上传文件时,使用CrawlerHandler类未对文件类型进行检验,导致了任意文件上传。升级可以防止这个漏洞产生。

# 漏洞 # 网络安全 # 漏洞分析
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录