黑帽SEO
免费发布泛目录 蜘蛛池 黑帽SEO工具

骑士人才系统4.2.3任意前台账号登录

  它是用TP开发的,就简单分析一下~~~

  在它的Application/Home/Controller/MembersController.class.php中有如下代码:

  public function varify_email(){ $token=I(‘get.token’,”,’trim’); $return_url_arr=array(‘1’=>U(‘Company/user_security’),’2’=>U(‘Personal/user_safety’)); if($token){ $token=str_replace(C(‘URL_HTML_SUFFIX’), ”, $token); $verify=explode(“-“, $token); $uid=decrypt($verify[0]); $email=decrypt($verify[1]); // var_dump($uid,$email,encrypt(‘2’),encrypt(‘abc@qq.com’));exit; $time=$verify[2]; if($time+3600*24>=time()){//24小时内有效 $userinfo=D(‘Members’)->where(array(‘uid’=>$uid))->find(); if(!$userinfo){ $this->error(‘邮箱验证失败!’,$return_url_arr[$userinfo[‘utype’]]); } $setsqlarr[’email’]=$email; $setsqlarr[’email_audit’]=1; if(false===$reg=M(‘Members’)->where(array(‘uid’=>$uid))->save($setsqlarr)) $this->error(‘邮箱验证失败!’,$return_url_arr[$userinfo[‘utype’]]); if(!$reg){ $this->success(“你的邮箱 {$email} 已经通过验证!”,$return_url_arr[$userinfo[‘utype’]]); return; } $user_visitor=new /Common/qscmslib/user_visitor; $user_visitor->logout(); $user_visitor->assign_info($userinfo); D(‘Members’)->update_user_info($setsqlarr,$userinfo); if ($userinfo[‘utype’]==”1″){ $r=D(‘TaskLog’)->do_task($userinfo,23); }else{ $r=D(‘TaskLog’)->do_task($userinfo,16); } write_members_log($userinfo,8001); if($r[‘data’]){ $sub=’增加’.$r[‘data’].C(‘qscms_points_byname’); }else{ $sub=”; } $this->success(‘邮箱验证通过!’.$sub,$return_url_arr[$userinfo[‘utype’]]); }else{ $this->error(‘该链接已过期’,$return_url_arr[$userinfo[‘utype’]]); 骑士人才系统4.2.3任意前台账号登录 } } else { $this->error(‘链接无效’,$return_url_arr[$userinfo[‘utype’]]); } }

  用户uid和email都是通过decrypt()解密得到的

  $uid=decrypt($verify[0]); $email=decrypt($verify[1]);

  中间用到了一个解密函数decrypt(),如下所示:

  function decrypt($txt, $key=’_qscms’) { // $txt 的结果为加密后的字串经过 base64 解码,然后与私有密匙一起, // 经过 passport_key() 函数处理后的返回值 $txt=passport_key(base64_decode($txt), $key); // 变量初始化 $tmp=”; // for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数 for ($i=0; $i < strlen($txt); $i++) { // $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位, // 与 $txt 的第 $i + 1 位取异或。然后 $i=$i + 1 $tmp .=$txt[$i] ^ $txt[++$i]; } // 返回 $tmp 的值作为结果 return $tmp; }

  我没有看解密函数是否可逆,只注意了key是固定值~~~因此,在前面我们可以构造出请求包进行邮箱验证。而且,在后面存在一个问题,验证完成之后直接登录了。

  $user_visitor=new /Common/qscmslib/user_visitor; $user_visitor->logout(); $user_visitor->assign_info($userinfo); D(‘Members’)->update_user_info($setsqlarr,$userinfo);

  骑士人才系统4.2.3任意前台账号登录

  骑士人才系统4.2.3任意前台账号登录

未经允许不得转载:黑帽SEO-实战SEO技术培训、泛目录站群、蜘蛛池、流量技术教程 » 骑士人才系统4.2.3任意前台账号登录
分享到: 更多 (0)

黑帽SEO-实战SEO技术培训、泛目录站群、蜘蛛池、流量技术教程

不做韭菜坚决不做韭菜