kindeditor php 漏洞,KindEditor漏洞、优化以及漏洞、BUG修复方案汇总

Kindeditor漏洞 编辑代码内容被执行

kindeditor漏洞描述:在kindeditor编辑代码添加到数据库时没有任何问题,也就是一些HTML代码不会被执行,例如:web编程,这样的代码在首次编辑的时候没有被执行。但是,从数据库里取出来再放到kindeditor里进行修改的时候问题就出现了,这行HTML代码被执行了,结果这样:web编程 变成了超链接的形式。

解决办法:先看下面这张图

ffcec386872672d0739071869cceb055.png

这张图是本站后台代码文件,我将从数据库里取出来的内容中的“&”进行了替换,替换成了实体“&”。然后你再取修改之前插入的代码,就可以正常显示了。

特别注意:上图中我使用的是PHP语言来修改的,其他服务器端脚本语言思想是一样的,进行替换。

KindEditor上传解析漏洞

影响版本:<= kindeditor 3.2.1(09年8月份发布的最新版)

漏洞利用:利用windows 2003 IIS解析漏洞拿WEBSHELL

KindEditor列目录漏洞

测试版本:KindEditor 3.4.2    KindEditor 3.5.5

1.1.http://netknight.in/67cms/kindeditor/PHP/file_manager_json.php?path=/

2. //path=/,爆出绝对路径D:AppServwww67cmskindeditorphpfile_manager_json.php

3. 2.http://netknight.in/67cms/kindeditor/php/file_manager_json.php?path=AppServ/www/67cms/

4. //根据爆出的绝对路径,修改path的值为AppServ/www/67cms/

5. 这时将遍历d:/AppServ/www/67cms/下的所有文件和文件名

上传修改拿shell漏洞

影响版本:

KindEditor 3.5.2~4.1

漏洞利用:

打开编辑器,将一句话改名为1.jpg   上传图片,

打开文件管理,进入“down”目录,跳至尾页,最后一个图片既是我们上传的一句话

点击改名

点击改名

3b92a052ca384977d9dfabd7423a7fe8.png

打开谷歌浏览器的 审查元素

7da5dccefcc77d1e5150566b7c8b581a.png

找到form表单

9b22a86ac789275de18bdf8dbcce7688.png

修改“jpg”为“asp”

abc2fe33374cb5c0784f5fffe16d2b0d.png

名字修改为1  保存

c9ae9759b006929e4820a2009ed9c6f6.png

KindEditor优化以及漏洞、BUG修复方案汇总

1 取消上传网络图片选项

### cdKindEditor/plugins/image/image.js第13行

allowImageRemote = K.undef(self.allowImageRemote, true)

将true改为false即可,前后对比图效果如下:

before:

ed0b478b83d577a182dcddd22f00e26c.png

after:

39953a4d452fbd1f234d1fc5ca747081.png

2 解决无法保存空格的BUG

### cdKindEditor/kindeditor.js

### 第752行 将第一个和最后一个\s替换成[ \f\n\r\t\v]完整代码如下:

var re =  /([ \f\n\r\t\v]*)]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>([ \f\n\r\t\v]*)/g;

3 解决复制粘贴、点击图片等操作滚动条自动下拉的BUG

### cdKindEditor/kindeditor.js

### 第1521行 将y = box.top + pos.y;替换成

y = pos.y;

4 图片上传路径问题

### 举个栗子:修改图片上传路径为根目录下的atcImg文件夹:

### cdKindEditor/php/upload_json

###$save_path为图片上传的路径$save_url为KindEditor中生成img标签的url路径   修改成下图所示即可:

6637c484066aeb8a70709f706e37fe18.png

KindEditor默认上传图片生成的url路径是不带域名的绝对路径,如果我们希望生成之后带上域名就需要对urlType进行设置了.

KindEditor中的urlType有4个参数,默认空值" "、"relative"、"absolute"、"domain"。初始化kindeditor时可以指定以下参数:

urlType  : " "               //默认为空,绝对路径

urlType  :"relative"           //相对路径

urlType  :"absolute"             //绝对路径

urlType  : "domain"           //带域名的绝对路径。

3种不同的路径效果如下图所示:

绝对路径 :

fcf21e6ef52731532159f2efba5ebd0a.png

相对路径 :

06cd76d0e79d04b43d9b6893f5a5bab0.png

带域名的绝对路径:

16ae0bbdd98c4b98c0a7508ee5f0fdb1.png

五 解决文本中插入的程序代码里的HTML实体标签被直接解析出来的BUG

###在PHP中添加此函数 , 在向Kindeditor中插入文本内容之前使用此函数将文本内容中的&符号替换即可解决

六 美化样式

###设置KindEditor生成的iframe中的样式(也就是编辑器内容框的样式)

例如我想 : 修改body的内边距为10px

进入kindeditor.js  第3535行  找到_getInitHtml函数 第一行arr数组里的代码就是iframe的HTML内容

那么直接将style标签中的 'body {margin:0;padding:5px;}' 替换为 'body {margin:0;padding:10px;}' 即可

###整合SyntaxHighlighter至编辑器中

一般大家都是在文章页引入语法高亮插件 , 在这里我想说的是 , 为什么不直接引入至编辑器中呢? 不要嫌麻烦, 带来好处是不言而喻的:

一是可以直接在编辑器就中看到代码被渲染的效果 , 一点对比色都没有的代码在写文章的时候是真滴辣眼睛

二是减少文章页的HTTP请求 , 减少服务器压力 , 提升页面加载速度 , 仅仅引入一个

三是SyntaxHighlighter是异步的 , 访客访问你的文章页假如内容特别多, 那么在DOM没有加载完 , 你的代码就等着不会被着色, 很难受!

废话就不多讲了, 直接上干货

1 首先需要引入SyntaxHighlighter.css在初始化Kindeditor时指定cssPath

cssPath :'./SyntaxHighlighter/styles/shCoreDefault.css'

2 进入kindeditor.js第3594行 将arr.push中的内容替换为如下(在编辑器生成的iframe中引入SyntaxHighlighter的JS文件):

arr.push('

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值