Session固化攻击从四个方面的叙述

Session的作用

解决在一定时间内一个客户端的多个请求的数据共享以及其他客户端请求的数据隔离问题。

Session的原理

在需要提供session支持的地方,由请求申请创建一个用来存放共享数据的对象,该对象被分配了一个唯一标识或ID,该标识或ID同时被做成cookie返回给客户端,后续的每次请求都会带有这个标识或ID。在需要session的地方检索出该标识或ID所对应的session对象。由于其他客户端请求所带的标识或ID不一样,进而拿到的session对象也不一样,所以session技术就能做到在一定时间内,同一客户端的若干请求可以共享数据,不同客户端的请求能够隔离数据。

Session的典型应用

用户身份验证:用户在登录且完成用户身份验证后,获取session,并将用户信息存放进session以便后续的请求使用此用户信息进行用户验证或获取该用户相关的数据。

Session的固化漏洞

由于理论上session id是通过服务端固化在客户端的且起初创建session和后续获取session都是通过request.getSession,这就造成了session固化漏洞,具体操作如下:

攻击者首先登录,在完成用户身份验证后,创建一个session对象;然后将该session的id设置到目标用户的cookie中去;目标用户在身份验证后,所获取的session对象并非新创建而是之前攻击者创建的session对象;目标用户在不知情的情况下,将身份信息存入此session;这样攻击者就盗取了目标用户的相关信息了并可以利用合法用户的身份做一些事情。

posted on 2022-03-05 11:41  金满仓  阅读(132)  评论(0)    收藏  举报

导航