很多建站公司都在使用Kindeditor开源的图片上传系统,该上传系统是可视化的,采用的开发语言支持asp、aspx、php、jsp,几乎支持了所有的网站可以使用他们的上传系统,对浏览器的兼容以及手机端也是比较不错的,用户使用以及编辑上传方面得到了很多用户的喜欢。
前端时间我们SINE安全对其进行全面的网站漏洞检测的时候发现,Kindeditor存在严重的上传漏洞,很多公司网站,以及事业单位的网站都被上传违规内容,包括一些赌博的内容,从我们的安全监测平台发现,年3月份,4月份,5月份,利用Kindeditor漏洞进行网站攻击的情况,日益严重,有些网站还被阿里云拦截,并提示该网站内容被禁止访问,关于该网站漏洞的详情,我们来看下。
很多被攻击的网站的后台使用的是Kindeditor编辑器并使用upliad_json组件来进行上传图片以及文档等文件,目前存在漏洞的版本是Kindeditor4.1.5以下,漏洞发生的代码文件是在upload_json.php代码里,该代码并没有对用户上传的文件格式,以及大小进行安全检测,导致用户可以伪造恶意文件进行上传,尤其html文件可以直接上传到网站的目录下,直接让搜索引擎抓取并收录。
我们来复现这个Kindeditor上传漏洞,首先使用的是Linuxcentos系统,数据库采用的是MySQL5.6,PHP版本使用的是5.4,我们将Kindeditor4.1.5的源码拷贝到刚搭建的服务器里去,我们进行访问.0.0.1/Kindeditor/php/demo.php截图如下:
打开上传页面后,我们可以发现上传的文件格式默认都是支持htm,html的包括我们上传的html使用XSS跨站攻击脚本代码都是可以执行的。攻击者利用这个网站漏洞批量的进行上传,对网站的快照进行劫持,收录一些非法违规的内容URL。
如何判断该网站使用的是Kindeditor编辑器呢?
1.kindeditor/asp/upload_json.asp?dir=file
2.kindeditor/asp.net/upload_json.ashx?dir=file
3.kindeditor/jsp/upload_json.jsp?dir=file
4.kindeditor/php/upload_json.php?dir=file
还有一个可以上传Webshell的漏洞,可以将asp,php等脚本文件直接上传到网站的目录下,利用方式首先上传一个图片,然后打开文件管理找到我们刚才上传的图片名字,点击改名这里,我们用火狐浏览器进行查看元素,找到FORM表单,将后缀名为JPG的改成PHP,然后点击修改,就可以导致图片文件被改成脚本执行了。
Kindeditor网站漏洞修复方案以及办法
该漏洞影响范围较广,攻击较多,一般都是公司企业网站以及政府事业单位,攻击者利用上传漏洞对其上传一些菠菜赌博棋牌等内容的html文件来进行百度快照的劫持,建议将上传功能进行删除,或者对代码里的上传格式进行限制,去掉html,htm的上传权限,只允许上传图片格式以及word文本。如果对网站代码不是太熟悉的话,可以找专业的安全公司来处理,国内也就Sinesafe公司和绿盟、启明星辰、深信服等网站安全公司比较专业。