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

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

缺陷编号:wooyun-2016-0176586

漏洞标题:天融信TopADS任意文件读取及删除四处打包(无需登录)

相关厂商:天融信

漏洞作者: xfkxfk

提交时间:2016-02-17 23:27

修复时间:2016-05-18 11:00

公开时间:2016-05-18 11:00

漏洞类型:任意文件遍历/下载

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

天融信TopADS任意文件读取及删除四处打包(无需登录)

详细说明:

天融信TopADS任意文件读取及删除四处打包(无需登录)
产品介绍:http://**.**.**.**/aqcp/bjaq/kjjfw/ddos_20130315165858709314/index.htm
第一处文件读取
文件/usr/local/apache2/htdocs/modules/ads/ads_bwlist_download.php

<?php
$file_dir = "/SE/web/";
$file_name = $_POST['filename'];
if (!file_exists($file_dir . $file_name)) {
echo "NO SUCH FILE";
exit;
}
// 打开文件
$file = fopen($file_dir . $file_name, "r");
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
?>


不用解释了,一眼就看出来了。。。
第二处文件读取及文件删除
文件/usr/local/apache2/htdocs/modules/ads/ads_log_download.php

<?php
date_default_timezone_set("Asia/Shanghai");
error_reporting(0);
$file_name = $_GET["name"];
$way = $_GET["way"];
$file_dir = "/SE/dumplog/".$way."/";
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
$file = fopen($file_dir . $file_name,"rb");

fseek($file, 0);
while (!feof($file))
{
set_time_limit(0);
print(fread($file, 1024*8));
flush();
ob_flush();
}

fclose($file);

if ($way == "manul")
{
unlink($file_dir . $file_name);
}
exit;


?>


这里存在任意文件读取,并且还存在任意文件删除漏洞
第三处文件读取
文件/usr/local/apache2/htdocs/modules/ads/ads_pcap_download.php

<?php
$file_name = $_GET["filename"];
$file_dir = "/SE/ads_tcpdump/";
if (!file_exists($file_dir . $file_name))
{
//检查文件是否存在
$file_dir = "/SE/attack_cap/";
if (!file_exists($file_dir . $file_name))
{
$file_dir = "/SE/abnormal_cap/";
if (!file_exists($file_dir . $file_name))
{
echo "NO SUCH FILE";
exit;
}
}
}
// 打开文件
$file = fopen($file_dir . $file_name,"r");
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
fseek($file, 0);
while (!feof($file))
{
set_time_limit(0);
print(fread($file, 1024*8));
flush();
ob_flush();
}
fclose($file);
exit;
?>


也不用多余的解释了
第四处文件读取
文件/usr/local/apache2/htdocs/modules/ads/ads_report_download.php

<?php
$file_name = $_POST["filename"];
$file_dir = $_SERVER['DOCUMENT_ROOT']."/cachedata/reports/";
if (!file_exists($file_dir . $file_name))
{
echo "NO SUCH FILE";
exit;
}
// 打开文件
$file = fopen($file_dir . $file_name, "r");
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;
?>


这里更黄更暴力,无需赘述

漏洞证明:

上面的四处文件读取和删除都很容易证明
我们拿第一处证明
案例:**.**.**.**/

topads1.png


然后拿最后一处证明
案例:**.**.**.**/

topads2.png


第二处和第三处就不再证明了

修复方案:

添加登录验证,过来非法数据

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2016-02-18 10:56

厂商回复:

已通过其它渠道获知,谢谢提交。

最新状态:

暂无