micecms一个鸡肋漏洞及修复 附EXP -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    不是说这个漏洞鸡肋需要什么条件 而是直接改管理员密码了 等你进后台后真正的管理员都进不到更不知道新密码是什么了 所以才鸡肋

    经典对白 看代码!..........

    index\setpwdAction.php

    运行路径是 /index.php/setpwd   呵呵 看上去有点奇特哦

   

    class setpwdAction extends security_normal {

    function action(){

    $loginname=$this->_getParamId(1);

    $forgetpwd=$this->_getParamId(2);

    global $conn;

    if($_POST['user_id']){ //-0-! 居然不是获取Session里的而是自己定义...漏洞所在

    $user=new model_User();  //连接数据库

    $user->setSubsection('WHERE user_id='.$_POST['user_id']); //查询会员ID 注意 是ID 不是name 默认管理员的ID 绝对是1

    $results=$user->doSelectOne();

    $password1=$_POST['pwd1']; //密码

    $password2=$_POST['pwd2']; //确认密码

    $pwd='';

    if($password1==$password2 and strlen($password1)>4)

    {

    $salt = md5(rand(100000, 999999).$_POST['loginname']);

    //这个数值用作多重加密密码 不错的加密思路 同时写在USER表里

    $pwd=sha1($salt.$password1);

    //不解析,

micecms一个鸡肋漏洞及修复 附EXP

。。。 就是加密

    }

    if($results) //不解析

    {

    if(strlen($pwd)>0){   //没理由你打算空密码把?

    $user->setSalt($salt);

    $user->setPassword($pwd);

    }

    $user->setForgetpwd('');

    $results=$user->doUpdate();

    //写进去了...

    if($results)

    $exeresult='密码修改成功,请使用新密码登录网站';

    else

    $exeresult='验证错误,请联系网站管理员!';

    //以下代码可以忽略

    分析完毕 admin和会员同放在USER表里 所以这里直接修改了

    后台登录地址 /admin.php/login

    EXP:

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

    作者:心灵,情整理编辑

    修复:看代码自己改吧

最新文章