当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0172774

漏洞标题:华安证券某系统设置不当可爆破+普通用户可越权获得管理员权限

相关厂商:华安证券股份有限公司

漏洞作者: 胡阿尤

提交时间:2016-01-26 13:10

修复时间:2016-01-27 14:32

公开时间:2016-01-27 14:32

漏洞类型:未授权访问/权限绕过

危害等级:高

自评Rank:10

漏洞状态:厂商已经修复

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-26: 细节已通知厂商并且等待厂商处理中
2016-01-26: 厂商已经确认,细节仅向厂商公开
2016-01-27: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

rt

详细说明:

问题系统是
mail.hazq.com Winmail Mail Server 5.1(Build 0801)
习惯性的手动尝试有没有弱口令,试了三次也没有出现验证码(我用的IE8,后来用firefox访问了一次发现有验证码,不知道什么奇葩逻辑)。

1.JPG


而且还会提示用户不存在,心中一阵窃喜,明显可以爆破的节奏啊,结果才试了5次就,提示错误太多不让试了。

3.JPG


这。。。看来是高兴的太早了啊,这下没得玩了。
还好挂着burpsuite的代理,之前的操作都有记录,翻一下看看有没有什么可以利用的吧。

4.JPG


忽然发现,登录次数都记录在cookie里面,额,这个我是可以修改的呀,这样设置有用吗?
果断修改下cookie记录的登录次数,没有提示错误太多了,这样就可以爆破了哈。
首先选取拼音双字的用户名进行爆破,找到了一部分存在的用户,有160多个,这里就不一一列出了。在此基础上用口令123456再次进行爆破,发现有两个用户使用该口令。

yuanli	
changhong


口令在提交过程中进行了简单的加密,懒得再用其他口令去跑了,不然的话应该还能跑到更多账号口令。

function encryptPwd(sVal) {
var sResult = '' ;
for(i = 0; i < sVal.length; i++)
{
sTemp = String.fromCharCode((sVal.charCodeAt(i) & 0x0f) | 0xa0);
sResult = sResult + sTemp;
sTemp = String.fromCharCode(((sVal.charCodeAt(i) >> 4) & 0x0f) | 0x80);
sResult = sResult + sTemp;
}

sResult = '{wm_crypt}' + BASE64.encode(sResult);
return sResult;
}


进去以后发现没有什么有价值的信息,仿佛是弃用很久的邮箱了,不知道该干嘛了。

4.1.JPG


然后搜到了这篇文章wooyun-2014-057890,就跟着一步一步往下做。把sessid加上去访问http://mail.hazq.com/admin/main.php?sessid=ba976714ebd0d4b4f4e814a8138d8eb2

5.JPG


结果却登录不进去,重定向到了管理员登录页并且url提示err=sess_load,仔细检查了几篇,操作步骤没问题啊。
好吧,我也找份源码来审计审计吧
/admin/main.php

$sesshandle = New Session();
$sesshandle->temp_folder = $temporary_directory;
$sesshandle->sessid = $sessid;
$sesshandle->timeout = $session_timeout;
$sesshandle->enable_cookies = true;
$sesshandle->sesstype = SESSION_ADMIN;
$session_value = $sesshandle->Load();
if ($session_value === false){
Header('Location: index.php?err=sess_load&retid='.$retid);
exit;
}


问题应该出在$sesshandle->Load(),跟过去看看它都干了些什么

function Load($chkfile = false) {
if($this->enable_cookies){
if (empty($_COOKIE['magicwinmail_sessid_'.$this->sessid]))
return false;
}

...
}


看来是cookie里少了点东西,加上吧,$_COOKIE['magicwinmail_sessid_'.$this->sessid]只要不为空就行了。

6.JPG


OK,成功进去管理界面。

7.JPG

漏洞证明:

8.JPG


总共665个邮箱账户。

9.JPG


可以管理所有用户,[要修改现有密码,请直接输入新密码]!!!

10.JPG

修复方案:

升级系统

版权声明:转载请注明来源 胡阿尤@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2016-01-26 15:49

厂商回复:

非常感谢您对华安证券的关注和支持,我们将尽快对此漏洞进行修复和处理!

最新状态:

2016-01-27:更改漏洞的最新状态