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

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

缺陷编号: WooYun-2015-160895

漏洞标题: espcms最新版V6.6.15.12.09任意用户登录(绕过补丁)

相关厂商: 易思ESPCMS企业网站管理系统

漏洞作者: Xser

提交时间: 2015-12-14 11:09

公开时间: 2015-12-26 16:56

漏洞类型: 设计缺陷/逻辑错误

危害等级: 高

自评Rank: 20

漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签: 无

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-12-14: 细节已通知厂商并且等待厂商处理中
2015-12-19: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-02-12: 细节向核心白帽子及相关领域专家公开
2016-02-22: 细节向普通白帽子公开
2016-03-03: 细节向实习白帽子公开
2015-12-26: 细节向公众公开

简要描述:

来自于http://www.wooyun.org/bugs/wooyun-2010-0142913的绕过

详细说明:

我们看看补丁打在那里了



在public/class_connector.php

code 区域
function member_purview($userrank = false, $url = null, $upurl = false) {
$this->ec_member_username = $this->fun->eccode($this->fun->accept('ecisp_member_username', 'C'), 'DECODE', db_pscode);
if (!preg_match("/^[^!@~`\'\"#\$\%\^&\*\(\)\+\-\{\}\[\]\|\\/\?\<\>\,\.\:\;]{2,30}$/i", $this->ec_member_username) && !empty($this->ec_member_username)) {
$this->fun->setcookie('ecisp_member_username', false);
$this->fun->setcookie('ecisp_member_info', false);
$linkURL = $this->get_link('memberlogin', array(), admin_LNG);
header('location:' . $linkURL);
exit();
}
$user_info = explode('|', $this->fun->eccode($this->fun->accept('ecisp_member_info', 'C'), 'DECODE', db_pscode));
list($ec_member_username_id, $this->ec_member_alias, $ec_member_integral, $ec_member_mcid, $this->ec_member_email, $this->ec_member_lastip, $this->ec_member_ipadd, $this->ec_member_useragent, $this->ec_member_adminclassurl) = $user_info;
$this->ec_member_username_id = intval($ec_member_username_id);
$this->ec_member_integral =





多了

code 区域
if (!preg_match("/^[^!@~`\'\"#\$\%\^&\*\(\)\+\-\{\}\[\]\|\\/\?\<\>\,\.\:\;]{2,30}$/i", $this->ec_member_username) && !empty($this->ec_member_username)) {
$this->fun->setcookie('ecisp_member_username', false);
$this->fun->setcookie('ecisp_member_info', false);
$linkURL = $this->get_link('memberlogin', array(), admin_LNG);
header('location:' . $linkURL);
exit();
}



这么一段东西,但是!preg_match这里出现漏洞应该写文preg_match

所以我们还是可以继续绕过补丁去进行任意用户登录的



demo测试:http://**.**.**.**



注册一个:4xser的账号(为了登录id为4的用户)



360截图20151213015957659.jpg





继续把username的值的值

code 区域
rNvle6ZUfe7o1e09USbIx0VI0rxv812BK05LNWKm5Dw=



然后用这个值覆盖到info的值



这个info的值是验证uid用的

360截图20151213020027855.jpg





最后刷新就可以登录uid为4这个用户了



一开始看到这么厉害的补丁以为补好了,结果哎。。。

漏洞证明:

我们看看补丁打在那里了



在public/class_connector.php

code 区域
function member_purview($userrank = false, $url = null, $upurl = false) {
$this->ec_member_username = $this->fun->eccode($this->fun->accept('ecisp_member_username', 'C'), 'DECODE', db_pscode);
if (!preg_match("/^[^!@~`\'\"#\$\%\^&\*\(\)\+\-\{\}\[\]\|\\/\?\<\>\,\.\:\;]{2,30}$/i", $this->ec_member_username) && !empty($this->ec_member_username)) {
$this->fun->setcookie('ecisp_member_username', false);
$this->fun->setcookie('ecisp_member_info', false);
$linkURL = $this->get_link('memberlogin', array(), admin_LNG);
header('location:' . $linkURL);
exit();
}
$user_info = explode('|', $this->fun->eccode($this->fun->accept('ecisp_member_info', 'C'), 'DECODE', db_pscode));
list($ec_member_username_id, $this->ec_member_alias, $ec_member_integral, $ec_member_mcid, $this->ec_member_email, $this->ec_member_lastip, $this->ec_member_ipadd, $this->ec_member_useragent, $this->ec_member_adminclassurl) = $user_info;
$this->ec_member_username_id = intval($ec_member_username_id);
$this->ec_member_integral =





多了

code 区域
if (!preg_match("/^[^!@~`\'\"#\$\%\^&\*\(\)\+\-\{\}\[\]\|\\/\?\<\>\,\.\:\;]{2,30}$/i", $this->ec_member_username) && !empty($this->ec_member_username)) {
$this->fun->setcookie('ecisp_member_username', false);
$this->fun->setcookie('ecisp_member_info', false);
$linkURL = $this->get_link('memberlogin', array(), admin_LNG);
header('location:' . $linkURL);
exit();
}



这么一段东西,但是!preg_match这里出现漏洞应该写文preg_match

所以我们还是可以继续绕过补丁去进行任意用户登录的



demo测试:http://**.**.**.**



注册一个:4xser的账号(为了登录id为4的用户)



360截图20151213015957659.jpg





继续把username的值的值

code 区域
rNvle6ZUfe7o1e09USbIx0VI0rxv812BK05LNWKm5Dw=



然后用这个值覆盖到info的值



这个info的值是验证uid用的

360截图20151213020027855.jpg





最后刷新就可以登录uid为4这个用户了



一开始看到这么厉害的补丁以为补好了,结果哎。。。

修复方案:

版权声明:转载请注明来源 Xser@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-12-26 16:56

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2015-12-14 11:39 | 不能忍 ( 普通白帽子 | Rank:113 漏洞数:51 | 要是能重来,我要选李白!)
    0

    伏地膜。大牛真是6,大牛快带我挖洞。

登录后才能发表评论,请先 登录