涉及程序:
Mambo 4.0.12 RC2
描述:
Mambo Site Server非法获得administrator权限
详细:
Mambo Site Server是一款开放源代码的WEB内容管理系统。服务器中的/administrator/index2.php存在缺陷,只要知道在会话平台上的任何会话,将导致任何用户都能获得administrator权限。
在刷新WEB页面之前,仍回保留cookie,从下列代码中可看出:
setcookie("sessioncookie", "$sessionID");
if ($HTTP_COOKIE_VARS["sessioncookie"]!="") {
$query="INSERT into ".$dbprefix."session set
session_id='$cryptSessionID', guest='', userid='$uid',
usertype='$usertype', gid='$gid', username='$username'";
$database->openConnectionNoReturn($query);
}
Mambo Site Server在嵌入会话平台之前将检查是否放置了cookie。如果没有正确的放置cookie,将不能嵌入会话,并且将不能在administrator目录上进行注册。将下列源代码转移到Session Cookie.php (在退出时调用)中,会发现退出后仍保留cookie:
$current_time = time();
if ($HTTP_COOKIE_VARS["sessioncookie"]==""){
网管bitscn_com
$randnum=getSessionID1();
...
$cryptrandnum=md5($randnum);
...
setcookie("sessioncookie", "$randnum");
$guest=1;
$query="INSERT into ".$dbprefix."session SET username='',
time=$current_time, session_id='$cryptrandnum', guest=$guest";
$database->openConnectionNoReturn($query);
}
类似下列的一个cookie将会被发送到浏览器:
sessioncookie=nh54OQIZb8ybaA2CNNdU1046102063
通过访问/administrator/index2.php,导致Mambo Site Server把普通用户当成管理员,并以administrator权限登录:
/administrator/index2.php?session_id=0ebda5bbba49dc226b4ed8fc801f1d98
利用该缺陷能使攻击者以管理员身份登录到任何MySQL数据库,由于很多WEB站点运行Mambo Site服务器,将影响很多WEB站点的安全。
攻击方法:
示例代码:
$current_time = time();
if ($HTTP_COOKIE_VARS["sessioncookie"]==""){
$randnum=getSessionID1();
...
$cryptrandnum=md5($randnum);
...
setcookie("sessioncookie", "$randnum");
中国网管联盟bitsCN.com
$guest=1;
$query="INSERT into ".$dbprefix."session SET username='',
time=$current_time, session_id='$cryptrandnum', guest=$guest";
$database->openConnectionNoReturn($query);
}
解决方案:
目前厂商还没有提供补丁或者升级程序,建议用户随时关注厂商的站点:
http://www.mamboserver.com/
临时解决方法:
将administrator目录设置密码保护。
附加信息:
无