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

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

缺陷编号: WooYun-2015-101511

漏洞标题: TerraMaster NAS网络存储服务器多处任意命命执行漏洞

相关厂商: www.terra-master.com/

漏洞作者: 路人甲

提交时间: 2015-03-17 17:13

公开时间: 2015-04-29 17:14

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

危害等级: 高

自评Rank: 15

漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签: 设计错误

1人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-17: 细节已通知厂商并且等待厂商处理中
2015-03-18: 厂商已经确认,细节仅向厂商公开
2015-03-28: 细节向核心白帽子及相关领域专家公开
2015-04-07: 细节向普通白帽子公开
2015-04-17: 细节向实习白帽子公开
2015-04-29: 细节向公众公开

简要描述:

TerraMaster NAS网络存储服务器存在多处任意命令执行漏洞。

详细说明:

受YY-2012 WooYun-2015-95059的启发,对TerraMaster的NAS进行了一番研究,发现存在不少问题,在此一并列出,纯属学习研究性质,不妥之处敬请指正。

首先到TerraMaster的官方网站上下载一个大小为50M左右的固件升级文件update-2.374.bz2,对应型号是F4-NAS。

1.png



解压后发现网页部分位于/usr/www目录,但是php源码被加密,文件头部显示一个特殊的字符串\tspartacus\t,后面为随机乱码。

2.png



经查看发现该设备的php主程序位于/usr/sbin/php-cgi,对该程序进行反汇编后发现存在上述字符串,

3.png



根据周边的字符串信息,我们基本可以确认该设备采用php-screw对源码进行加密,到SourceForge上下载php-screw源代码,然后手动修改一下源代码即可将加密部分变成解密程序,编译后可用于php加密代码的解密。

有了明文源代码,就可以进行正常的代码审计工作了,在/usr/www/include/ajax/ajaxdata.php文件中,发现存在多处任意命令执行的隐患。

程序先将$_POST全局变量赋给局部变量$data,再逐一判断执行各个功能分支,流程部分如下

5.png





在scanwlan分支中

else if(isset($data['scanwlan']))

{

if($data['scanwlan'] == 0){

……

}else if($data['scanwlan'] == 1){

if($data['linkstat'] == 0){

……

}else if($data['linkstat'] == 1){

$cmd = "$_func_common && noontec_wirelssapdisconnect ".$data['wlanName']."";

$return = $root[wifi][linking]." ".$data['ssid']." ".$root[wifi][wifiSign];

shell_exec($cmd);

}

echo $return;

}

}

在scanwlan=1且linkstat=1时,$cmd变量在装配时带入了$data['wlanName'],此处变量由$_POST而来,用户可控且无过滤,可轻易引发下面shell_exec执行时的命令注入。



再如在SNMP分支中

else if(isset($data['SNMP']))//--------snmp stop---------

{

if($data['SNMP'] == 0){

……

}else if($data['SNMP'] == 1){

shell_exec("$_A00snmpd stop");

$command = "snmpdset 1 \"".$data['SNMPdata']."\"";

shell_exec($command);

和上面一样的原理,$data['SNMPdata']因用户可控且无过滤,轻易引发命令注入。



如上情况在整个ajaxdata.php中多处存在,这里就不一一列举,道理都是一样。

漏洞证明:

POST时带入恶意数据即可。如scanwlan=1;linkstat=1;wlanNmae=xxx%3byyy

yyy为要执行的具体命令。

修复方案:

不要直接将用户输入带入命令中执行。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-03-18 13:36

厂商回复:

CNVD确认并复现所述情况,已经由CNVD通过网站公开联系方式(或以往建立的处置渠道)向网站管理单位(软件生产厂商)通报。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

登录后才能发表评论,请先 登录