cookie的欺骗

cookie的欺骗是用户在登录的时候极为容易被他人获取权限,植入浏览器中,从而访问到后台。

先简要认识一下cookie,cookie机制是在浏览网页的时候,服务器将你的登录信息,浏览信息等发送给客户端并保存一定的时间。当你下一次访问这个网站的时候,就能读取上一次你的记录。
例如自动登录等。很多的网站都是由cookie来辨认登录者的信息。它可以起到登录验证的作用,从而存在了漏洞,可以绕过验证直接登录到后台。

先在自己瞎搞的网页上测试一下。网站的部分源码如下:

    //是否已经登陆
    public static function isLogin(){
        if(!Cookie::has('name')){
            return false;
        }
        return true;
    }

	//用户登录
    public function login(){
        if(Common::isLogin()){
            $this->redirect('index/index/index');
        }
        if(request()->isPost()) {
            $data = input('post.', '', 'trim');
            $result=User::userLogin($data);
            if($result['code']==1){
                $this->redirect('index/index/index');
            }
            else{
                $this->error($result['msg']);
            }
        }
        return view();
    }

这里的代码将cookie里面的name作为用户登录的信息,所以我们只要伪造了这个信息就可以绕过登录页面,直接登录。也就是cookie欺骗。
这里先用ie浏览器进入网页的登录页面进行登录
在这里插入图片描述
登录成功后我们用iecookieview插件来寻找到刚才登录的cookie
在这里插入图片描述

在这里插入图片描述

这时候换火狐浏览器进入主界面,由于不同的浏览器cookie的信息肯定是不相同的,所以这时火狐浏览器的信息是没有登录
在这里插入图片描述

这里使用cookie manager插件添加一条cookie,内容与刚才ie浏览器截获的一致,这里并没有获得密码等什么信息
在这里插入图片描述
添加进去之后刷新刚才的网页可以看见登录信息已经显示ie浏览器的登录信息了,这里cookie欺骗已经成功。如果获取到的是管理员账号就可以进行更进一步的提权操作了。

总的来说登录验证的强与否决定了cookie伪造的难易,后面可以在代码中改进验证方法来避免一些简单的cookie伪造。例如在上面的代码中对于isLogin函数做一些适当的修改。

public static function isLogin(){
        if(!Cookie::has('name')||!Cookie::has('code')||!Cookie::has('key')){
            return false;
        }
        if(Cookie::has('key')==md5(Cookie::has('code'))){
            return true;
        }
        return false;
    }

这样会比刚才好一些,但是也不是最安全的,有待后续学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值