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