神刀安全网

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

漏洞详情

披露状态:

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

code 区域
<?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

code 区域
<?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

code 区域
<?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

code 区域
<?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;

?>

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

漏洞证明:

上面的四处文件读取和删除都很容易证明

我们拿第一处证明

案例:**.**.**.**/

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

然后拿最后一处证明

案例:**.**.**.**/

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

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

修复方案:

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

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

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 漏洞标题: 天融信TopADS任意文件读取及删除四处打包(无需登录)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址