BUGTRAQ ID: 34910 Bitweaver是免费的开源web应用框架和内容管理系统。 Bitweaver的boards/boards_rss.php模块没有正确地过滤对version参数所传送的输入便用于创建文件: ... echo $rss->saveFeed( $rss_version_name, $cacheFile ); ... 以不安全方式调用了saveFeed()函数,基于$_REQUEST[version]变量的参数可能包含有目录遍历序列。 在/rss/feedcreator.class.php的saveFeed()函数中: ... function saveFeed($filename="", $displayContents=true) { if ($filename=="") { $filename = $this->_generateFilename(); } if ( !is_dir( dirname( $filename ))) { mkdir_p( dirname( $filename )); } $feedFile = fopen($filename, "w+"); if ($feedFile) { fputs($feedFile,$this->createFeed()); fclose($feedFile); if ($displayContents) { $this->_redirect($filename); } } else { echo "<br /><b>Error creating feed file, please check write permissions.</b><br/>"; } } } ... 无论php.ini设置如何,用户都可以创建任意文件夹、覆盖文件,还可以以任意扩展名结束路径。 Bitweaver Bitweaver <= 2.6 Bitweaver --------- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: <a...
BUGTRAQ ID: 34910 Bitweaver是免费的开源web应用框架和内容管理系统。 Bitweaver的boards/boards_rss.php模块没有正确地过滤对version参数所传送的输入便用于创建文件: ... echo $rss->saveFeed( $rss_version_name, $cacheFile ); ... 以不安全方式调用了saveFeed()函数,基于$_REQUEST[version]变量的参数可能包含有目录遍历序列。 在/rss/feedcreator.class.php的saveFeed()函数中: ... function saveFeed($filename="", $displayContents=true) { if ($filename=="") { $filename = $this->_generateFilename(); } if ( !is_dir( dirname( $filename ))) { mkdir_p( dirname( $filename )); } $feedFile = fopen($filename, "w+"); if ($feedFile) { fputs($feedFile,$this->createFeed()); fclose($feedFile); if ($displayContents) { $this->_redirect($filename); } } else { echo "<br /><b>Error creating feed file, please check write permissions.</b><br/>"; } } } ... 无论php.ini设置如何,用户都可以创建任意文件夹、覆盖文件,还可以以任意扩展名结束路径。 Bitweaver Bitweaver <= 2.6 Bitweaver --------- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: <a href="http://www.bitweaver.org/" target="_blank" rel=external nofollow>http://www.bitweaver.org/</a>