Author: handt

site     :upload/2011/3/201103240211173836.jpg” border=”0″ small=”0″ alt=”" />

0×01 exploit 使用演示

在 /phpweb 目录下建立文件vuln.php ,将 [1] 中给出的exploit代码复制进去,保存。

确保你的php.exe在环境变量中,在/phpweb目录shift+右键,打开命令行,输入:

php vuln.php

出现使用提示:

本地的fckeditor路径为 /htdocs/js/fckeditor/editor……

所以输入命令为:

php vuln.php 127.0.0.1 /js/fckeditor/

是config.php文件中没有开启上传功能,ok,修改config.php第30行:$Config['Enabled'] = false;

再次输入 php vuln.php 127.0.0.1 /js/fckeditor/

看来是遇到死循环了,没办法,自己打印一些中间信息进行查看,在connector.php文件中对传入的三个参数进行简单处理后调用了

FileUpload( $sResourceType, $sCurrentFolder, $sCommand ) ;

这里三个参数值分别为:Image,/fuck.php .gif/,FileUpload 。

FileUpload()在commands.php中定义:

function FileUpload( $resourceType, $currentFolder, $sCommand )
{
if (!isset($_FILES)) {
global $_FILES;
}
$sErrorNumber = ’0′ ;
$sFileName = ” ;
echo ‘#4#’;
if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
{
echo ‘#5#’;
global $Config ;

$oFile = $_FILES['NewFile'] ;
echo ‘#10#’;
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, $sCommand ) ;

通过打印 #x# 的提示信息,可以判断出问题出在ServerMapFolder()函数上,该函数在io.php中定义:

function ServerMapFolder( $resourceType, $folderPath, $sCommand )
{

// Get the resource type directory.
$sResourceTypePath = GetResourceTypeDirectory( $resourceType, $sCommand ) ;

再看GetResourceTypeDirectory()的代码:

function GetResourceTypeDirectory( $resourceType, $sCommand )
{
global $Config ;
if ( $sCommand == “QuickUpload”)
{
if ( strlen( $Config['QuickUploadAbsolutePath'][$resourceType] ) > 0 )
return $Config['QuickUploadAbsolutePath'][$resourceType] ;

// Map the “UserFiles” path to a local directory.
return Server_MapPath( $Config['QuickUploadPath'][$resourceType] ) ;
}
else
{
if ( strlen( $Config['FileTypesAbsolutePath'][$resourceType] ) > 0 )
return $Config['FileTypesAbsolutePath'][$resourceType] ;

// Map the “UserFiles” path to a local directory.
return Server_MapPath( $Config['FileTypesPath'][$resourceType] ) ;
}
}

最后,路径信息落到了Server_MapPath()里面,这里$Config['FileTypesPath'][$resourceType] 值在config.php中设置,此处为

$Config['FileTypesPath']['Image']的值,看看Server_MapPath()的内容:

function Server_MapPath( $path )
{
// This function is available only for Apache
if ( function_exists( ‘apache_lookup_uri’ ) )
{
echo ‘func exist!!’;

echo $path;  // 注意,这里打印的信息
$info = apache_lookup_uri( $path ) ;
return $info->filename . $info->path_info ;
}

// This isn’t correct but for the moment there’s no other solution
// If this script is under a virtual directory or symlink it will detect the problem and stop
return GetRootPath() . $path ;
}

函数中$path打印的值为:/userfiles/image/ 很正常,而最后返回的值为/index.php/userfiles/image/,显然是因为function_exists( ‘apache_lookup_uri’ )为true,导致$info->filename执行,导致结果错误。

注释掉 return $info->filename . $info->path_info

再次执行:

php  vuln.php 127.0.0.1 /js/fckeditor/

ok,让人欣喜的结果出来了,看看/htdocs/userfiles/image目录吧:

现在小马已经写入服务器,接下来就是用客户端连接了。这里,推荐大家使用”中国菜刀“这款工具,可以直接对php、asp、aspx的一句话木马进行连接:

看到效果了吧:

0×02 实战

这个因为比较危险,所以具体的过程和方式就不详细叙述了。

总之,通过自己的实战证明,这个exploit绝对可以拿到webshell,只是概率并不高,需要耐心和良好的google关键字。

0×03 成因分析

0×01中只是演示了利用过程,下面对背后的原理进行分析。水平有限,错误的地方还请指出。

待有时间了补充

0×04 小结

在使用中自己想深入了解的地方有:

1.“一句话木马客户端”的原理,以及如何编写木马客户端。

2.漏洞的发掘过程,目前企业界好像很流行fuzzing测试,但是这种具体的程序怎么进行测试我还是不了解,有知道的朋友还请不吝赐教: mail2gw@qq.com

本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/528236,如需转载请自行联系原作者

对FCKEditor = 2.6.4 通杀 exploit 的分析相关推荐

  1. iis+php解析漏洞修复,IIS7.0畸形解析漏洞通杀0day

    IIS7.0畸形解析0day通杀漏洞,和Nginx上次的0day一样.使用iis7.0的注意了.临时解决办法:关闭cgi.fix_pathinfo为0 Nginx好像又爆0day了,windows下可 ...

  2. 易想团购 注入 user.php,易想团购系统通杀SQL注入漏洞分析及利用漏洞预警 -电脑资料...

    刚打开红黑看到J8基友写的一个{易想团购系统 最新版 通杀}的文章,看他贴的代码里面有个get_client_ip()函数,哈哈,我猜没过滤,果断下了一套程序, 找到get_client_ip()函数 ...

  3. 恶意软件伪装成系统更新,通杀Win Mac Linux三大系统,隐藏半年才被发现

    晓查 发自 凹非寺 量子位 | 公众号 QbitAI 能同时攻击Windows.Mac.Linux三大操作系统的恶意软件出现了. 虽然"全平台通杀"病毒并不常见,但是安全公司Int ...

  4. 人类已无法阻挡AI?围棋后AI再破最强人类堡垒,通杀智力比赛

    据美国<科学>杂志报道,一部名叫Pluribus的计算机人工智能程序又突破了人类的一个智力领域--6人德州扑克,这标志着计算机已经通杀了人类主流的棋牌智力比赛. 在卡内基梅隆大学担任计算机 ...

  5. 安全现状:从通杀到专杀

    传统的盗号木马在减少,钓鱼等安全隐患则还在逐步上升.日前,腾讯副总裁曾宇在出席AVAR2012亚洲反病毒大会时表示,安全行业的发展有一个大的趋势,杀毒软件正在从"通杀"的格局慢慢转 ...

  6. e7xue.php漏洞_简要分析最近的dedecms通杀漏洞以及漏洞补丁的绕过

    话说文章写得菜不要紧,首先标题要跟大牛一样! 作者:单恋一支花 出自:t00ls 转载请注明出处,如有雷同,纯属别人抄袭,嘿嘿! 一:写在前面 今天晚上想老婆了,失眠了,蛋裂之余,进吐司寻找基友,惊现 ...

  7. X86逆向教程2:提取按钮通杀特征码

    本章我们将学习特征码的提取与定位,特征码是软件中一段固定的具有标志性的代码片段,特征码的用途非常广泛,最常见的就是杀毒软件的查杀了,查杀就是根据特征码定位技术实现的,再比如木马的免杀也是修改了特征码的 ...

  8. /plus/recommend.php sql注入漏洞,DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 -

    DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 目前官方最新版已修复该漏洞 V5.7.37 GBK正式版20140228常规更新补丁 http://www.dedecms.com/pl/ ht ...

  9. 通用滑块识别-通杀滑块

    遇到滑块问题 在写爬虫的时候,经常会遇到滑块问题,很多次都想过尝试如何攻破滑块,但是每次都没成功,除了最开始的极验滑块,当时通过原图和滑块图的对比,能够得出缺口坐标,但是随着极验.网易.腾讯滑块的更新 ...

最新文章

  1. IIS7 上配置运行 Ruby CGI环境
  2. 第 3 章 第 2 题 求级数问题 递归法实现
  3. MyEclipse Build path contains duplicate entry
  4. 跟我一起学.NetCore之熟悉的接口权限验证不能少(Jwt)
  5. 【Pytorch神经网络实战案例】24 基于迁移学习识别多种鸟类(CUB-200数据集)
  6. Android架构实例分析之编写hello驱动的HAL层代码
  7. FlashDevelop 遇到的Process not responding 问题
  8. php和python-浅析PHP与Python进行数据交互
  9. 《高效对话》— 综合素质提升书籍
  10. 采购入库单参照采购订单时未带入供应商
  11. Excel 条件格式应用及原理
  12. P沟道mos管作为开关的条件(GS GS(TH))
  13. jekenis+maven(nodejs)+svn自动化部署(前后端)
  14. python+appium判断元素存在_python+appium 查找某个元素find_element()并click()点击,正向判断与反判断的方法封装...
  15. 使用谷歌提供的html5shiv.js解决
  16. diskgenius重新分区教程
  17. 超牛!用WIFI控制的摇控汽车
  18. 承德石油高等专科学校计算机20019年,承德石油高等专科学校2019年高职单招录取人数...
  19. 程序员下班电脑不关机的5大原因,你中招了吗?《表单提交》
  20. Java笔记之abstract类和abstract方法

热门文章

  1. ORACLE 10g 数据库体系结构图
  2. RESTful Web Services初探
  3. RIP协议的基本配置(1)
  4. linux常用的28个快捷键
  5. iOS开发 BLE 蓝牙4.0
  6. (转)分布式文件存储FastDFS(五)FastDFS常用命令总结
  7. 递归下降分析法--算数语法分析
  8. Silverlight – Datagrid,Dataform数据验证和ValidationSummary
  9. hsrp热备路由协议实验
  10. 3.5 面向连接的运输:TCP