cookie 登录绕过漏洞

1 cookie 登录绕过漏洞

如果用户登录验证使用,cookie 身份验证会存在安全隐患,cookie 信息是外部可控制的。如果验证不严很容易被绕过。

2 cookie 的用途

1、cookie 的作用:

我们在浏览器中,经常涉及到数据的交换,比如你登录邮箱,登录一个页面。我们经常会在此时设置 30 天内记住我,或者自动登录选项。那么它们是怎么记录信息的呢,答案就是今天的主角 cookie 了,Cookie 是由 HTTP 服务器设置的,保存在浏览器中,但 HTTP 协议是一种无状态协议,在数据交换完毕后,服务器端和客户端的链接就会关闭,每次交换数据都需要建立新的链接。就像我们去超市买东西,没有积分卡的情况下,我们买完东西之后,超市没有我们的任何消费信息,但我们办了积分卡之后,超市就有了我们的消费信息。cookie 就像是积分卡,可以保存积分,商品就是我们的信息,超市的系统就像服务器后台,http协议就是交易的过程。

2、机制的区别:

session 机制采用的是在服务器端保持状态的方案,而 cookie 机制则是在客户端保持状态的方案,cookie 又叫会话跟踪机制。打开一次浏览器到关闭浏览器算是一次会话。说到这里,讲下 HTTP 协议,前面提到,HTTP 协议是一种无状态协议,在数据交换完毕后,服务器端和客户端的链接就会关闭,每次交换数据都需要建立新的链接。此时,服务器无法从链接上跟踪会话。cookie 可以跟踪会话,弥补 HTTP 无状态协议的不足。

3、cookie 的分类:

cookie 分为会话 cookie 和持久 cookie,会话 cookie 是指在不设定它的生命周期 expires 时的状态,前面说了,浏览器的开启到关闭就是一次会话,当关闭浏览器时,会话 cookie 就会跟随浏览器而销毁。当关闭一个页面时,不影响会话 cookie 的销毁。会话 cookie 就像我们没有办理积分卡时,单一的买卖过程,离开之后,信息则销毁。

持久 cookie 则是设定了它的生命周期 expires,此时,cookie 像商品一样,有个保质期,关闭浏览器之后,它不会销毁,直到设定的过期时间。对于持久 cookie,可以在同一个浏览器中传递数据,比如,你在打开一个淘宝页面登陆后,你在点开一个商品页面,依然是登录状态,即便你关闭了浏览器,再次开启浏览器,依然会是登录状态。这就是因为 cookie 自动将数据传送到服务器端,在反馈回来的结果。持久 cookie 就像是我们办理了一张积分卡,即便离开,信息一直保留,直到时间到期,信息销毁。在访问网站的时候 网站有一些业务需要会自动分配一些 cookie 到浏览上,用来记录用户的行为,如购物车。在 WEB 安全中存在安全隐患,多数发生在验证登录。不少程序在验证处,判断 cookie 是否为空,假如不为空即可登录,cookie 可预测。

3 cookie 登录绕过代码分析

从cookie.php代码中,只要 cookie 不为空即可登录.

<?php
include 'init.php';
​
if($_COOKIE['username']){
    echo "登录成功【{$_COOKIE['username']}】";
    
}
​
​
?>
​
<meta charset="UTF-8">
<form method='post'>
    <label>帐号:</label><input type='text' name='username'><br>
    <label>密码:</label><input type='password' name='password'><br>
    <input type='submit' value='登录' name='submit'>
</form>
webper@webper-virtual-machine:/var/www/html$ cat cookie.php
<?php
include 'init.php';
​
if($_COOKIE['username']){
    echo "登录成功【{$_COOKIE['username']}】";
    
}
​
​
?>
​
<meta charset="UTF-8">
<form method='post'>
    <label>帐号:</label><input type='text' name='username'><br>
    <label>密码:</label><input type='password' name='password'><br>
    <input type='submit' value='登录' name='submit'>
</form>
​

4 cookie 登录绕过攻击

cookie 可以在浏览器提交的数据进行修改的。

绕过方法

用 buspteuie 修改 username 不等于空即可绕过 。

Forward 提交

5 cookie 登录绕过防御

1.使用 cookie 身份验证时,不要使用简单的验证,对外部输入的参数进行过滤.

2.尽量使用 session 安全认证,seesion 是外部不可控的.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值