安全研究
安全漏洞
fuzzylime CMS多个本地文件包含和任意文件覆盖漏洞
发布日期:2009-06-17
更新日期:2009-06-24
受影响系统:
fuzzylime fuzzylime <= 3.03a描述:
BUGTRAQ ID: 35418
CVE(CAN) ID: CVE-2009-2176, CVE-2009-2177
fuzzylime是一个内容管理系统,是建立各种规模站点的理想系统。
fuzzylime的code/confirm.php模块没有正确验证对list参数所提供的输入,code/display.php模块没有正确验证对template参数所提供的输入,远程攻击者可以包含本地资源的任意文件。以下是有漏洞的代码段:
confirm.php
-----------------------------------------------------------------
1. <?
2. @extract($HTTP_GET_VARS);
3. @extract($_GET);
27. elseif(isset($e)) {
28. $filename = "code/mailing/$list.inc.php";
29. @include $filename;
-----------------------------------------------------------------
display.php
--------------------------------------------------------------------
98. if($_GET['print'] != "1") include "templates/${template}_f.php";
--------------------------------------------------------------------
此外fuzzylime的code/display.php模块没有正确的验证对s参数的输入,可能导致以web server的权限覆盖任意文件。以下是有漏洞的代码段:
display.php
-----------------------------------------------------------------
1. <?
2. $s = $_GET[s];
3. $p = $_GET[p];
4. $s = str_replace("../", "", $s);
5. $p = str_replace("../", "", $p);
...
54. $cachefile = "cache/${s}_${p}_$_GET[m]_$_GET[c]_$_GET[t]_$_GET[u]_$_GET[print].cache.htm";
100. if($usecache == "1" && $passprot != "1" && $s != "rss" && empty($_GET[msg]) && empty($_GET[tn])) {
101. if($handle = fopen($cachefile, 'w')) { // Create the cache file
102. $output = ob_get_contents();
103. fputs($handle, $output);
104.
105. fclose($handle);
106. }
107. }
----------------------------------------------------------------------
成功利用这些漏洞要求禁用了magic_quotes_gpc。
<*来源:StAkeR (StAkeR@hotmail.it)
链接:http://secunia.com/advisories/35489
http://www.milw0rm.com/exploits/8978
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://www.example.com/[path]/code/display.php?template= {file + nullbyte}
http://www.example.com/[path]/code/display.php?usecache=1&s=....//settings
建议:
厂商补丁:
fuzzylime
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://cms.fuzzylime.co.uk
浏览次数:2486
严重程度:0(网友投票)
绿盟科技给您安全的保障
