PHPXmail口令认证绕过漏洞
发布日期:2005-07-07
更新日期:2005-07-07
受影响系统:PHPXmail PHPXmail 1.1
PHPXmail PHPXmail 0.7
描述:
BUGTRAQ ID:
14175
PHPXmail是基于Web的Xmail邮件服务器管理软件,用PHP语言编写。
PHPXmail对用户认证数据的处理上存在问题,远程攻击者可能利用此漏洞绕过访问认证。
如果尝试以用户名和错误口令登录的话,服务器会用类似于以下的消息响应:-00024 invalid password
从下面的代码中可见函数检查第一个字符是否为“-”,如果是的话函数就返回false并退出。
代码:class.xmail.php
if ($ret[0] == '-') { // not logged in
$this->xm_err_msg = $ret; // get error msg
return FALSE;
echo "$ret";
die;
exit;
}
如果以超长口令登录的话就无法从服务器得到响应消息,函数也不会退出。这时再以类似于postmaster@localhost和超长口令登录就可以绕过错误处理程序,成功登录。
代码: from login.inc
default:
$mail_server->xm_ctrl_p = xmdecrypt($servers["$form_server"][3]);
$logged_in = $mail_server->userauth($mail_server->xm_user_d,
$mail_server->xm_user_u, $mail_server->xm_user_p);
break; /* here we try to log in */
if ($logged_in != "The operation completed successfully.")
$_SESSION['mail_server'] = $mail_server;
$_SESSION['logged_in'] = $logged_in; /* take a look at the
session vars */
<*来源:Stefan Lochbihler (
steve01@chello.at)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=112067694016410&w=2
*>
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 在口令输入字段中加入maxsize标签。
厂商补丁:
PHPXmail
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://phpxmail.sourceforge.net/浏览次数:2789
严重程度:0(网友投票)