↑ 点击上方“安全狗”关注我们
安全狗海青实验室近期在响应某网站安全事件时发现攻击者通过kindeditor文件上传漏洞实现站点劫持,将站点跳转到违法色情网站。
KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果。KindEditor 使用 JavaScript 编写,可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。目前在国内已经成为最受欢迎的编辑器之一。
经过分析,攻击者是对历史漏洞CVE-2017-1002024进行了利用,受影响的版本是4.1.11及之前的版本(目前最新的版本是2017年发布的4.1.12版本,根据安全狗海青实验室的监测,目前仍然存在部份用户未及时更新到最新版本)。攻击者可以利用该漏洞将html、html、txt等文件上传到服务器上。目前发现的事件包括攻击者曾利用该漏洞针对党政机关网站实施批量上传。
我们根据最新的研究分析总结出了一些防护建议,敬请用户知晓。
漏洞名称 |
kindeditor文件上传漏洞 |
CVE编号 |
CVE-2017-1002024 |
漏洞影响版本 |
<=4.1.11 |
漏洞危害等级 |
中危 |
厂商是否已发布漏洞补丁 |
是 |
安全狗总预警期数 |
75 |
安全狗发布预警日期 |
2019年3月22日 |
发布者 |
安全狗海青实验室 |
以JSP程序为例,对该文件上传漏洞进行复现,漏洞复现的过程分为以下3部分:
① 搭建漏洞环境
② 模拟“可以找到编辑器框页面以及kindeditor目录”的攻击场景
③ 模拟“不可以找到编辑器框页面,但可以找到kindeditor目录”的攻击场景
具体如下:
① 搭建漏洞环境
(1)下载kindeditor 4.1.11
到
https://github.com/kindsoft/kindeditor/tree/v4.1.11
下载“kindeditor-4.1.11.zip”;
(2)将“kindeditor-4.1.11.zip”解压到Tomcat的webapps/kindeditor-4.1.11目录下;
(3)将kindeditor/jsp/lib目录下的3个jar文件复制到Tomcat的lib目录下,并重新启动Tomcat。
* commons-fileupload-1.2.1.jar
* commons-io-1.4.jar
* json_simple-1.1.jar
(4)在/kindeditor-4.1.11目录下创建用于保存所上传文件的文件夹attached。
(5)打开浏览器,访问
http://localhost:8080/kindeditor-4.1.11/jsp/demo.jsp
如图所示。
此时,我们可以访问到kindeditor内置的jsp例程,漏洞环境搭建成功。
② 模拟“可以找到编辑器框页面以及kindeditor目录”的攻击场景
设编辑器框页面为
192.168.43.80:8080/kindeditor-4.1.11/jsp/demo.jsp
设kindeditor目录为
Tomcat/webapps/kindeditor-4.1.11/
(1)进行文件上传攻击
上传“hellosafedog.html”,如图所示。
可以发现Burpsuite的Response信息显示了该html文件的上传路径:
/kindeditor-4.1.11/attached/file/20190322/20190322073213_258.html
(2)使用浏览器访问所上传的html文件,如图所示。
可以发现,所上传的html代码可以被执行。如果我们插入恶意html代码,将会对网站造成危害。
③ 模拟“不可以找到编辑器框页面,但可以找到kindeditor目录”的攻击场景
设kindeditor目录为:
Tomcat/webapps/kindeditor-4.1.11/
(1)使用curl模拟post请求进行上传
执行以下命令:
curl -F [email protected] http://192.168.43.80:8080/kindeditor-4.1.11/jsp/upload_json.jsp?dir=file
如图所示:
可以发现,该html文件的上传路径:
/kindeditor-4.1.11/attached/file/20190322075641_591.html
(2)使用浏览器访问所上传的html文件,如图所示。
可以发现,可以利用“不可以找到编辑器框页面,但可以找到kindeditor目录”的攻击场景进行文件上传。
在Kindeditor<=4.1.11版本的根目录下的“asp”“asp.net”“jsp”“php”等文件夹本是演示程序。官方文档说明,不建议直接在实际项目中使用,在使用之前应仔细确认相关安全设置。但有许多使用该组件的网站并未删除这些演示程序,且未做相关安全设置,从而导致漏洞被利用。
以jsp演示程序为例,根据BurpSuite数据包分析可以发现,在上传文件时,会对/upload_json.jsp?dir=file做POST请求。对upload_json.jsp做审计,可以发现演示程序以白名单的形式配置允许上传的文件扩展名,然而文件扩展名包含了“htm”“html”以及“txt”,这是不安全的做法,如图所示
为了防止直接被黑客利用,kindeditor已经在4.1.12版本中对“asp”“asp.net”“jsp”“php”等目录的file_manager_json.*以及upload_json.*文件做了改名处理(改成了upload_json.*.txt和file_manager_json.*.txt),如图所示
除却官方提供的修复方案外,我们另外提供基于安全狗产品的应急解决方案。
一、kindeditor官方提供的修补方案
目前厂商已经发布了升级补丁以修复这个安全问题,请使用kindeditor v4.1.11及之前版本的用户到厂商的GitHub主页下载更新到4.1.11以上的版本:
https://github.com/kindsoft/kindeditor
二、基于安全狗产品处置建议
1.请使用kindeditor v4.1.11及之前版本的用户使用“网站安全狗”的“上传防护”功能进行防御,如图所示
2.建议用户关注在网站建设过程中所使用的富文本编辑器、框架以及依赖库等第三方组件的安全更新公告(KindEditor的这一文件上传漏洞早在2017年就已被披露过漏洞详情)。
往期精彩文章:
【云安全】再获公安部权威认证!安全狗获颁云计算产品信息安全和CSA CSTR双证书
【企业动态】“云舟”共济,安全狗推出了这个前景无限的合作伙伴计划
【企业动态】再获国家级资质!安全狗被授予CNNVD技术组支撑单位奖牌
【企业动态】“凭云鼓浪·论道安全”云安全高峰论坛圆满结束,精彩内容先睹为快!
【解决方案】安全狗发布explorer一键挖矿病毒专项清除方案
【企业动态】2018中国网络安全年会:安全狗CEO陈奋深度解读EDR
【企业动态】青岛公安致谢安全狗:上合峰会网络安保这场硬仗,打得漂亮!
原文始发于微信公众号(安全狗):【安全预警】kindeditor文件上传漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论