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

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

缺陷编号:wooyun-2013-020759

漏洞标题:Espcms v5.6 暴力注入

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

漏洞作者: Yaseng

提交时间:2013-03-28 11:01

修复时间:2013-04-02 11:02

公开时间:2013-04-02 11:02

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-03-28: 细节已通知厂商并且等待厂商处理中
2013-04-02: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

Espcms 某处挺有意思的注入,虽然对传值有加密并且随机key,但可以逆向重举这个弱伪随机数来控制sql任意参数,导致系统注入

详细说明:

interface\membermain.php 第 33行

$db_sql = "SELECT * FROM $db_table1 LEFT JOIN $db_table2 ON a.userid = b.userid  WHERE a.userid = $this->ec_member_username_id ";


ec_member_username_id 直接从cookies的ecisp_member_info
系统对cookie进行特定的加密 并且随机出key
加密函数:
public\class_function.php 第179 行

function eccode($string, $operation = 'DECODE', $key = '@LFK24s224%@safS3s%1f%') {
$result = '';
if ($operation == 'ENCODE') {
for ($i = 0; $i < strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key)) - 1, 1);
$char = chr(ord($char) + ord($keychar));
$result.=$char;
}
$result = base64_encode($result);
$result = str_replace(array('+', '/', '='), array('-', '_', ''), $result);
} elseif ($operation == 'DECODE') {
$data = str_replace(array('-', '_'), array('+', '/'), $string);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
$string = base64_decode($data);
for ($i = 0; $i < strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key)) - 1, 1);
$char = chr(ord($char) - ord($keychar));
$result.=$char;
}
}
return $result;
}


key的生成:
install\fun_center.php 第 238 行

$pscode = rand('99', '999');
$config .= "define('db_pscode', '" . md5(md5($pscode)) . "');\r\n";


额 两次md5 随机值
在围观下 cookies中 ecisp_member_info的生成吧
interface\member.php 第 110 行

$this->fun->setcookie('ecisp_member_info', $this->fun->eccode("$memberread[userid]|$memberread[alias]|$memberread[integral]|$memberread[mcid]|$memberread[email]|$memberread[lastip]|$ipadd|" . md5($_SERVER['HTTP_USER_AGENT']) . '|' . md5(admin_ClassURL), 'ENCODE', db_pscode));


用户id 名称 邮箱 等等信息,这些对于攻击者都是可知的,那不是可以重举99到999 的key来匹配这些信息
简单计算出key之后,即可以操作cookie,传入任意sql语句
例如 官方演示站

5.jpg


key为 95e87f86a2ffde5110e93c2823634927
查看当前语句
把member_info 明文为
1 and 1=2 union select 1,2,3,user(),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
eccode 之后修改cookie值即可查询出mysql 当前用户

6.jpg


漏洞证明:

通过一系列编码cookie操作可以获取管理员用户名 密码

3.jpg


登陆系统后台 可在模板编辑处 getshell,从而拿下权限

10.jpg


修复方案:

过滤
使用mt_rand
改变算法

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


漏洞回应

厂商回应:

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

忽略时间:2013-04-02 11:02

厂商回复:

漏洞Rank:16 (WooYun评价)

最新状态:

2013-04-23:此漏洞已经过官方修正,下载最新包即可!


漏洞评价:

评论

  1. 2013-03-27 17:04 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    给力

  2. 2013-03-27 17:06 | 瘦蛟舞 认证白帽子 ( 普通白帽子 | Rank:687 漏洞数:78 | 铁甲依然在)

    @_Evil @Seay 暴力注入=0=~

  3. 2013-03-27 17:53 | king ( 路人 | Rank:15 漏洞数:2 | 喜爱安全,网络游戏安全应用漏洞挖掘)

    顶 yangse

  4. 2013-03-27 17:58 | Seay ( 实习白帽子 | Rank:65 漏洞数:8 )

    【虽然对传值有加密并且随机key,但可以逆向重举这个弱伪随机数来控制sql任意参数,导致系统注入】哈哈,这种最有意思了

  5. 2013-03-27 18:01 | 酱油甲 ( 普通白帽子 | Rank:645 漏洞数:126 | 打个酱油,吃个海蜇~)

    洞主好HAPPY

  6. 2013-03-27 19:01 | DragonEgg ( 实习白帽子 | Rank:75 漏洞数:18 | 冷漠无情的绅士,温柔善良的坏蛋。)

    洞主4个洞,,3个已忽略,这是第四个。。。= =!

  7. 2013-03-27 19:05 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @DragonEgg 乌云给加分吧 @xsser

  8. 2013-03-27 19:07 | Yaseng ( 实习白帽子 | Rank:62 漏洞数:7 | 干)

    @DragonEgg 欢迎来到乌云单机吧 -_-

  9. 2013-03-27 20:13 | w5r2 ( 普通白帽子 | Rank:226 漏洞数:52 )

    @Yaseng @Yaseng @Yaseng @Yaseng 2

  10. 2013-04-02 11:16 | 乌云 ( 实习白帽子 | Rank:39 漏洞数:5 | 菜鸟一枚, </iframe>...)

    @DragonEgg 楼主好悲剧。 连着被忽略了四个。

  11. 2013-04-02 11:24 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    这官方sb吧

  12. 2013-04-02 11:52 | 乌云 ( 实习白帽子 | Rank:39 漏洞数:5 | 菜鸟一枚, </iframe>...)

    @xsser 我艹。阁下爆粗口了

  13. 2013-04-02 22:28 | 银冥币 ( 实习白帽子 | Rank:35 漏洞数:21 | "/upload/avatar/avatar_251_b.jpg" />)

    忽略。。

  14. 2013-04-04 09:34 | DragonEgg ( 实习白帽子 | Rank:75 漏洞数:18 | 冷漠无情的绅士,温柔善良的坏蛋。)

    @Yaseng 哈哈,,让你自己再乌鸦嘴。。= =!

  15. 2015-09-01 12:47 | Elliott ( 实习白帽子 | Rank:40 漏洞数:9 | 绝逼不当程序员)

    学习了!!!!