KindEditor 文件上传漏洞漏洞

1 漏洞简介

1.1 漏洞描述

KindEditor是一套开源的HTML可视化编辑器,使用JavaScript编写,支持asp、aspx、php、jsp,几乎支持了所有的网站,该编辑器主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器,非常适合在CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。且该编辑器支持上传功能,如果上传文件类型控制的不好,那么我们就能利用该漏洞,上传doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2文件

目前存在漏洞的版本是Kindeditor 4.1.12以下,漏洞发生的代码文件是在upload_json.jsp代码里,该代码并没有对用户上传的文件格式,以及大小进行安全检测,导致用户可以伪造恶意文件进行上传,尤其html文件可以直接上传到网站的目录下,直接让搜索引擎抓取并收录,利用这个漏洞,黑产等其它攻击者可以上传HTML黑页钓鱼以及嵌套xss等危害

1.2 影响范围

kindeditor版本<4.1.12。
在实际已监测到的安全事件案例中,上传的htm,html文件中存在包含跳转到违法色情网站的代码,攻击者主要针对党政机关网站实施批量上传,建议使用该组件的网站系统尽快做好安全加固配置

2 环境搭建

本地环境搭建

1、https://github.com/kindsoft/kindeditor 下载后直接解压到网站根目录下即可

2、然后添加文件夹attacked(上传文件的目录),修改 js名称,将kindeditor-all.js改成kindeditor.js,因为默认的 demo调用的js文件名称就是kindeditor.js,当然也可以修改 demo中调用的名称,可以根据个人喜好。

3、访问测试的地址,出现如下界面说明正常,可以进行编辑和上传。

在这里插入图片描述

Password:

Port*:无

3 漏洞验证

1、 如果能够打开kindeditor编辑的地址,在编辑器的上传文件处可以可以直接进行插入文件。

在这里插入图片描述

2、 编辑器对上传格式有要求,通过返回可以发现他可以上传html、 txt、word等类型文件上传html文件,可以发现返回了地址

在这里插入图片描述

3、然后进行访问可以发现html代码可以执行,当我们插入的是恶意html代码就会对网站造成危害。

在这里插入图片描述

尝试如下路径是否存在有必要验证文件 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

也可以提前判断系统的语言,这里我们采用的是php,访问http://ip/kindeditor/php/upload_json.php ,返回状态码200,显示存在。否则显示404,not found 。

在真实环境下无法找到这个编辑器框的时候我们可以利用curl来进行模拟post请求来进行上传

curl提交一个html文件,内容随便写就好,比如 hh.html,使用 curl提交过程如下返回上传的 html的访问路径:curl -F"imgFile=@hh.html"http://ip/kindeditor/php/upload_json.php?dir=file

在这里插入图片描述

在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

inurl:gov.cn/kindeditor/

4 防御方案

防御方案:

本次漏洞级别为高危,近期针对该漏洞的攻击活动正变得活跃,攻击对象一般是政府单位和公众企业,攻击者借此漏洞上传菠菜和色情链接,建议尽快做好安全加固配置。

该漏洞的具体解决办法如下:

1.删除;即在不影响业务的情况下删除Kindeditor对应文件夹下删除upload_json.* 和file_manager_json.*

2.修改;如果该功能还需使用,可修改file_manager_json和upload_json中允许文件上传类型,去掉可执行文件、html、htm等文件类型,同时也要修改file_manager_json和upload_json两个文件名称,这样攻击者找不到对应的漏洞上传路径,就无法成功上传具有危害的文件了,最好修补方案还是删除upload_json.* 和file_manager_json.*

ger_json和upload_json两个文件名称,这样攻击者找不到对应的漏洞上传路径,就无法成功上传具有危害的文件了,最好修补方案还是删除upload_json.* 和file_manager_json.*

3.升级kindeditor到最新版本,其它方法有增加白/黑名单控制上传文件类型

参考链接

https://www.jianshu.com/p/0b775464aee5

https://www.freebuf.com/column/202148.html

https://www.cnblogs.com/backlion/p/10421405.html

版权声明:本文为sinat_40293958原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。