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

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

缺陷编号:wooyun-2016-0190212

漏洞标题:中兴某网关设备通用型命令执行(无需登录)

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

漏洞作者: 路人甲

提交时间:2016-03-29 10:23

修复时间:2016-06-27 11:30

公开时间:2016-06-27 11:30

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

中兴某网关设备通用型命令执行

详细说明:

混乌云之pwnsh4d0w(与freebuf不同)

2.png

设备型号为:ZTE Management system
可通过傻蛋搜索

11.png


在sys_backuprestore.be.php中
通过上枚漏洞读到该文件内容

function sys_upload_apply($post){
global $db;
global $lang;
global $res;
$savepath = WEB_TMP_DIR;
$savepath =$savepath."uploaded/";
$filename1 = $_FILES['userfile1']['name'];
$filename2 = $_FILES['userfile2']['name'];
$filename3 = $_FILES['userfile3']['name'];
$filename4 = $_FILES['userfile4']['name'];
$filenameture= false;
$dbUserTables = array('otusers','user_lcrservices','users','devices','sip','zap','forwards','black_list','speed_dials','ftp_users','authreg','internal_contexts','otu_services','ext_binding'); //备份多库
$dbSystemTables = array('acd_agents','acd_queue_members','acd_queues','call_rule_dests','call_rules','callbacks','conferences','dhcp_hosts','dhcp_ranges','did_routes','dns_domains','dns_records','fw_black_list','h323_providers','http_vhosts','hunt_groups','iax_providers','ip_routes','ivr_tree','lcm_globals','lcr_services','mail_aliases','mail_banlist','mail_domains','mail_relay_domains','nmo_app_definitions','nmo_blacklist','nmo_bm_policy','oft_operators','oft_roles','outbound_route_dests','outbound_routes','pbx_feature_codes','qos_services','queue','sip_providers','smb_shares','tc_conf','tc_conf_pipes');
$dbLogTables = array('nmo_web_auditlog','nmo_ftp_auditlog','nmo_im_auditlog','nmo_p2p_auditlog','nmo_mail_auditlog','nmo_contents','nmo_logcontents','nmo_ipfraud_log','nmo_over_budget_conn_log'); //备份多库
//$dbUserTables = array('otusers','user_lcrservices','users');
$dbAnalyTables = array('nmo_web_auditlog','nmo_ftp_auditlog','nmo_im_auditlog','nmo_p2p_auditlog','nmo_mail_auditlog','nmo_contents','nmo_logcontents','nmo_ipfraud_log','nmo_over_budget_conn_log');
if (($filename1 == "") && ($filename2 == "") && ($filename3 == "") && ($filename4 == "")) {
//echo "大哥传点东西上来吧,不然就不要乱摁!";
}
if(is_dir($savepath) && file_exists($savepath)){

}
else
{
mkdir($savepath);
}
if (isset($filename1) && ($filename1 != "")) {
if ((preg_match("/.sql/i",$filename1)) && (preg_match("/user/i",$filename1))) {
move_uploaded_file($_FILES['userfile1']['tmp_name'],$savepath.$filename1);
$con = mysql_connect("localhost","root","admin");
mysql_select_db("ot",$con);
mysql_query("SET @@FOREIGN_KEY_CHECKS = 0");


这个函数只要$filename1不为空,以及后面匹配$filename1名字即可
但是$filename1名字要匹配user,又要匹配.sql ,这里很容易通过,所以我们只要构造好user.sql这样的文件即可获取一个shell.
保存路径又是自定义好的/temp/uploaded/
所以写form表单即可

1.png


**.**.**.**/temp/uploaded/user.sql.php

2.png


**.**.**.**/temp/uploaded/user.sql.php

3.png


**.**.**.**/temp/uploaded/user.sql.php

4.png


**.**.**.**/temp/uploaded/user.sql.php

5.png


**.**.**.**/temp/uploaded/user.sql.php

6.png


**.**.**.**/temp/uploaded/user.sql.php

7.png


案例非常多
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**

漏洞证明:

混乌云之pwnsh4d0w(与freebuf不同)

2.png

设备型号为:ZTE Management system
可通过傻蛋搜索

11.png


在sys_backuprestore.be.php中
通过上枚漏洞读到该文件内容

function sys_upload_apply($post){
global $db;
global $lang;
global $res;
$savepath = WEB_TMP_DIR;
$savepath =$savepath."uploaded/";
$filename1 = $_FILES['userfile1']['name'];
$filename2 = $_FILES['userfile2']['name'];
$filename3 = $_FILES['userfile3']['name'];
$filename4 = $_FILES['userfile4']['name'];
$filenameture= false;
$dbUserTables = array('otusers','user_lcrservices','users','devices','sip','zap','forwards','black_list','speed_dials','ftp_users','authreg','internal_contexts','otu_services','ext_binding'); //备份多库
$dbSystemTables = array('acd_agents','acd_queue_members','acd_queues','call_rule_dests','call_rules','callbacks','conferences','dhcp_hosts','dhcp_ranges','did_routes','dns_domains','dns_records','fw_black_list','h323_providers','http_vhosts','hunt_groups','iax_providers','ip_routes','ivr_tree','lcm_globals','lcr_services','mail_aliases','mail_banlist','mail_domains','mail_relay_domains','nmo_app_definitions','nmo_blacklist','nmo_bm_policy','oft_operators','oft_roles','outbound_route_dests','outbound_routes','pbx_feature_codes','qos_services','queue','sip_providers','smb_shares','tc_conf','tc_conf_pipes');
$dbLogTables = array('nmo_web_auditlog','nmo_ftp_auditlog','nmo_im_auditlog','nmo_p2p_auditlog','nmo_mail_auditlog','nmo_contents','nmo_logcontents','nmo_ipfraud_log','nmo_over_budget_conn_log'); //备份多库
//$dbUserTables = array('otusers','user_lcrservices','users');
$dbAnalyTables = array('nmo_web_auditlog','nmo_ftp_auditlog','nmo_im_auditlog','nmo_p2p_auditlog','nmo_mail_auditlog','nmo_contents','nmo_logcontents','nmo_ipfraud_log','nmo_over_budget_conn_log');
if (($filename1 == "") && ($filename2 == "") && ($filename3 == "") && ($filename4 == "")) {
//echo "å¤§å“¥ä¼ ç‚¹ä¸œè¥¿ä¸Šæ¥å§ï¼Œä¸ç„¶å°±ä¸è¦ä¹±æ‘ï¼";
}
if(is_dir($savepath) && file_exists($savepath)){

}
else
{
mkdir($savepath);
}
if (isset($filename1) && ($filename1 != "")) {
if ((preg_match("/.sql/i",$filename1)) && (preg_match("/user/i",$filename1))) {
move_uploaded_file($_FILES['userfile1']['tmp_name'],$savepath.$filename1);
$con = mysql_connect("localhost","root","admin");
mysql_select_db("ot",$con);
mysql_query("SET @@FOREIGN_KEY_CHECKS = 0");


这个函数只要$filename1不为空,以及后面匹配$filename1名字即可
但是$filename1名字要匹配user,又要匹配.sql ,这里很容易通过,所以我们只要构造好user.sql这样的文件即可获取一个shell.
保存路径又是自定义好的/temp/uploaded/
所以写form表单即可

1.png


**.**.**.**/temp/uploaded/user.sql.php

2.png


**.**.**.**/temp/uploaded/user.sql.php

3.png


**.**.**.**/temp/uploaded/user.sql.php

4.png


**.**.**.**/temp/uploaded/user.sql.php

5.png


**.**.**.**/temp/uploaded/user.sql.php

6.png


**.**.**.**/temp/uploaded/user.sql.php

7.png


案例非常多
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2016-03-29 11:25

厂商回复:

感谢提交~

最新状态:

暂无