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

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

缺陷编号: WooYun-2013-24689

漏洞标题: ecshop一处设计缺陷可以被二次利用

相关厂商: ShopEx

漏洞作者: 齐迹

提交时间: 2013-05-29 12:19

公开时间: 2013-08-27 12:19

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

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

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

Tags标签: php源码审核 设计不当导致攻击界面扩大

5人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-05-29: 细节已通知厂商并且等待厂商处理中
2013-05-29: 厂商已经确认,细节仅向厂商公开
2013-06-01: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2013-07-23: 细节向核心白帽子及相关领域专家公开
2013-08-02: 细节向普通白帽子公开
2013-08-12: 细节向实习白帽子公开
2013-08-27: 细节向公众公开

简要描述:

ecshop一处设计缺陷导致可以被二次利用。关于管理员密码那些事。

详细说明:

本文前提 已经获得管理员密码的MD5!



不知道从那个版本开始ec管理员密码加密方式发生了一些变化

$ec_salt=rand(1,9999);

md5(md5($pwd).$ec_salt;

对于通过注入得到md5的兄弟们标识压力山大啊!爆破无望。



不过。。ec后台的找回密码给了大家希望。

这个Bug 很明显 可能已经被长期利用



下面看代码

admin/get_password.php 138行

code 区域
/* 验证新密码,更新管理员密码 */
elseif (!empty($_POST['action']) && $_POST['action'] == 'reset_pwd')
{
$new_password = isset($_POST['password']) ? trim($_POST['password']) : '';
$adminid = isset($_POST['adminid']) ? intval($_POST['adminid']) : 0;
$code = isset($_POST['code']) ? trim($_POST['code']) : '';

if (empty($new_password) || empty($code) || $adminid == 0)
{
ecs_header("Location: privilege.php?act=login\n");
exit;
}

/* 以用户的原密码,与code的值匹配 */
$sql = 'SELECT password FROM ' .$ecs->table('admin_user'). " WHERE user_id = '$adminid'";
$password = $db->getOne($sql);

if (md5($adminid . $password) <> $code)
{
//此链接不合法
$link[0]['text'] = $_LANG['back'];
$link[0]['href'] = 'privilege.php?act=login';

sys_msg($_LANG['code_param_error'], 0, $link);
}

//更新管理员的密码
$ec_salt=rand(1,9999);
$sql = "UPDATE " .$ecs->table('admin_user'). "SET password = '".md5(md5($new_password).$ec_salt)."',`ec_salt`='$ec_salt' ".
"WHERE user_id = '$adminid'";
$result = $db->query($sql);





看出问题了把

md5($adminid . $password) == $code

即可重置密码

前面已经说了前提了 2个值都有了 code是多少已经很明显了



而且这里没有任何限制,存在暴力破解(密码字典+1-9999的盐)。成本较高。但是可以自动化。

漏洞证明:

上面已经很清楚鸟!

修复方案:

换个更加严禁的code生成方式。增加验证码。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:6

确认时间:2013-05-29 20:52

厂商回复:

非常感谢您为shopex信息安全做的贡献
我们将尽快修复
非常感谢

最新状态:

暂无


漏洞评价:

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

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

评价

  1. 2013-05-29 12:47 | xsser 认证白帽子 ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
    0

    这个... 应该是个小缺陷 不用给钱了吧....

  2. 2013-05-29 13:51 | 齐迹 ( 普通白帽子 | Rank:804 漏洞数:104 | 重庆地区招聘安全工程师。sec.zbj.com欢迎...)
    0

    @xsser 没事。。马上再来一个xss

  3. 2013-06-09 10:00 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)
    0

    有货呀 呵呵

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