帝国CMS(全版) 验证码可无视!可导致验证码无效(验证码识别都是渣渣)

基本字段

漏洞编号:
SSV-96219
披露/发现时间:
2014-09-05
提交时间:
2014-09-05
漏洞等级:
漏洞类别:
其他类型
影响组件:
EmpireCMS
漏洞作者:
风情万种
提交者:
Knownsec
CVE-ID:
补充
CNNVD-ID:
补充
CNVD-ID:
补充
ZoomEye Dork:
补充

来源

漏洞详情

贡献者 Knownsec 共获得  0KB

简要描述:

帝国CMS 验证码可无视!可导致验证码无效(验证码识别都是渣渣)

详细说明:

看帝国 获取验证码的代码

//显示验证码
function ShowKey($v){
    $vname=ecmsReturnKeyVarname($v);
    $key=strtolower(domake_password(4));
    ecmsSetShowKey($vname,$key);
 ..................
}

ecmsReturnKeyVarname 是返回保存验证码的cookie的名称 比如本列打开的页面上注册页面的验证码 url 是 http://localhost/empirecms/e/ShowKey/?v=reg 第一步:根据ecmsReturnKeyVarname 返回的是checkregkey

//返回变量名
function ecmsReturnKeyVarname($v){
    if($v=='login')//登陆
    {
        $name='checkloginkey';
    }
    elseif($v=='reg')//注册
    {
        $name='checkregkey';
    }
    elseif($v=='info')//信息
    {
        $name='checkinfokey';
    }
    elseif($v=='spacefb')//空间反馈
    {
        $name='checkspacefbkey';
    }
    elseif($v=='spacegb')//空间留言
    {
        $name='checkspacegbkey';
    }
    elseif($v=='gbook')//留言
    {
        $name='checkgbookkey';
    }
    elseif($v=='feedback')//反馈
    {
        $name='checkfeedbackkey';
    }
    elseif($v=='getpassword')//取回密码
    {
        $name='checkgetpasskey';
    }
    elseif($v=='regsend')//重发激活邮件
    {
        $name='checkregsendkey';
    }
    else//评论pl
    {
        $name='checkplkey';
    }
    return $name;
}

第二步:ecmsSetShowKey函数将cookie保存到cookie中,看这函数好像是做了不少 其实是把验证码md5了一下就保存到cookie里面了 关键点:$key=$time.','.$checkpass.','.$val; $val就是验证码的md5

/设置验证码
function ecmsSetShowKey($varname,$val,$ecms=0){
    global $public_r;
    $val=md5($val);
    $time=time();
    $checkpass=md5(md5($val.'EmpireCMS'.$time).$public_r['keyrnd']);
    $key=$time.','.$checkpass.','.$val;
    esetcookie($varname,$key,0,$ecms);
}
//设置COOKIE
function esetcookie($var,$val,$life=0,$ecms=0){
    global $ecms_config;
    $varpre=empty($ecms)?$ecms_config['cks']['ckvarpre']:$ecms_config['cks']['ckadminvarpre'];
    return setcookie($varpre.$var,$val,$life,$ecms_config['cks']['ckpath'],$ecms_config['cks']['ckdomain']);
}

第三步:查看cookie,mlukmcheckregkey=1409913237%2C26b915271f0eccf2eef645af070e7e63%2C8f136277f7544773106f4c06dcdb4bf4; 最后面%2C后面8f136277f7544773106f4c06dcdb4bf4就是验证码的md5 这四位数的验证码在cmd5那是一查一个准啊

QQ截图20140905183708.gif

QQ截图20140905183929.gif

漏洞证明:

QQ截图20140905183708.gif

QQ截图20140905183929.gif

共 0  兑换了

PoC

暂无 PoC

参考链接

解决方案

临时解决方案

暂无临时解决方案

官方解决方案

暂无官方解决方案

防护方案

暂无防护方案

人气 2381
评论前需绑定手机 现在绑定

暂无评论

※本站提供的任何内容、代码与服务仅供学习,请勿用于非法用途,否则后果自负