【攻击与漏洞】-与session有关的攻击

在学习计算机网络时,我们知道HTTP是无状态的协议, 为了维持和跟踪用户的状态, 引入了Cookie和Session。Cookie中保存了当前用户的登录凭证,Cookie丢失,往往意味着用户的登录凭证丢失,换句话说,攻击者可以不通过密码,而直接登录用户的账户。

有一个很形象的例子说明两者之间的关系, Cookie是钥匙, Session是锁芯.一般登录用户请求页面的时候,浏览器会带上服务器颁发的凭证cookie,凭着这个凭证(钥匙),找到服务器里存着对应的session数据,一判断session里有用户信息(说明钥匙和锁芯匹配),于是根据用户信息返回相关数据。登录功能就是这样实现的。如果钥匙被别人拿了, 那别人就可以冒充你的身份, 去打开你的锁芯, 从而获取你的信息, 这是非常危险的。

目录

cookie劫持

固定会话攻击

session保持攻击


cookie劫持

原理:这是一种通过获取用户Session ID后,使用该Session ID登录目标账号的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。

攻击者一般是诱导用户执行一个远程脚本, 从该远程脚本中将cookie传给服务器,从而盗取用户cookie。之后再利用盗取的cookie登录目标用户的账号。在2004版的《白帽子讲安全》中有介绍这样一个实验例子,我自己尝试了很久,一直没有实现,现在只把书中记录的该实验流程记录下来

  1. 在firefox中访问用户的百度空间,登录后可以查看到cookie,并将该cookie记录下来
  2. 打开ie,访问同一个页面,此时在ie中,用户是未登录状态
  3. 将当前ie中的cookie替换成firefox中记录的cookie,并重新发送这个包
  4. 此时ie中的用户进入登录状态

cookie的httponly可以防止“cookie劫持”

固定会话攻击

原理:会话固定(Session fixation)是一种诱骗受害者使用攻击者指定的会话标识(SessionID)的攻击手段。假设A有一辆汽车,A把汽车卖给了B,但是A并没有把所有的要是都给B,自己还藏了一把,如果B不换锁的话,A就可以继续非法使用这辆汽车了。

攻击前提:登录前后session-id不变

例子:Mallory是攻击者,Alice是受害者。Mallory先自己访问下某网站,获取自己的session ID,然后把这个sessionID拼接在网址后面发给Alice访问,只要那Alice一登录, Mallory也就相当于登录了

1.Mallory访问 http://unsafe/ 并获得了一个会话ID(SID),例如服务器返回的形式是:Set-Cookie: SID=0D6441FEA4496C2
2.Mallory给Alice发了一个邮件:”我行推出了一项新服务,率先体验请点击:http://unsafe/?SID=0D6441FEA4496C2
3.Alice点击并输入密码登录了,此时Mallory再用这个会话ID登录网页,Mallory就会被认为是Alice

解决办法:登录前后更换session-id

注:上面描述的这种情况只发生在session-id保存在url中的情况,由于现在大多数的session id都是保存在cookie中的,所以固定会话攻击用武之地越来越少了。

session保持攻击

这是由于没有给session设置一个失效时间而导致的,攻击者有机会长时间地占用用户的合法身份。

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

vector<>

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

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

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

打赏作者

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

抵扣说明:

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

余额充值