会话安全(Session Security)

会话安全(Session Security)

一、为什么需要会话

​ 一般在TCP三次握手就创建一个会话,在会话中可以传递信息,等TCP关闭连接就关闭会话。且HTTP协议是基于TCP协议的,所以HTTP会话也会关闭会话,而在HTTP1.1中,一个连接就只能处理一个请求,所以在需要权限身份认证的时候就需要有一种身份标识。

二、有关会话的安全隐患

1、信息泄露

​ Cookie的主要功能是实现用户个人信息的索引值记录,服务器中对应索引值的Session中存储了大量用户的信息,如身份id,浏览次数,手机号,等一些隐私信息,它最根本的用途是帮助Web站点保存有关访问者的信息,可是一旦泄露了Cookie,除了会产生信息泄露,攻击者也可以通过用户身份登录,这是非常大的隐患。

2、越权操作

​ 在cookie的身份认证中,极容易造成越权,且大多数越权修改参数都是在Cookie这个字段进行修改,大多数cookie中会有用户的身份标识ID,如果未合理的处理或者多重认证,很容易造成越权。

三、Session劫持

​ Session劫持就是自己的PHPSESSID被攻击者以某种方式获取,然后在会话的有效期内,利用被攻击者的身份登录网站,来达到身份劫持,伪装成合法用户。Session成功劫持一般需要几个步骤,

1、用户访问的平台是使用session来进行身份认证。

2、用户已经使用账号密码登录该平台,随即该用户会得到一个sessionid。

3、通过劫持获取到sessionid,并且在sessionid的有效期内使用(未注销前)

四、Session劫持的方法

如何获得sessionid是关键

1、会话爆破:

尝试各种Session ID,直到破解为止;

PHPSESSID生成规则是根据hash_func散列来生成的,相关的参数有:

  • 客户端IP

  • 当前时间(秒)

  • 当前时间(微秒)

  • PHP自带的随机数生产器

2、会话劫持:

​ 会话劫持(Session hijacking),是一种通过获取用户Session ID后,使用该Session ID登录目标账号的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。

​ 利用xss反弹到的cookie,来伪造身份登录。即可利用管理员的session来登录,前提是

必须在会话有效期内使用。或者利用任意文件读取,XXE漏洞等其他漏洞来进行读取文

件来获取sessionid,服务端保存的都是在有效期内的session。

3、会话预测:

​ 如果Session ID使用非随机的方式产生,那么就有可能计算出来;

​ 预测这种方式,也就是攻击者需要猜测出系统中使用的有效的session标识符,有点类似

暴力破解。

4、会话固定:

​ 会话固定(Session fixation)是一种诱骗受害者使用攻击者指定的会话标识(SessionID)的攻击手段。这是攻击者获取合法会话标识的最简单的方法。让合法用户使用黑客预先设置的sessionID进行登录,从而是Web不再进行生成新的sessionID,从而导致黑客设置的sessionId变成了合法桥梁。

​ 让合法用户使用黑客预先设置的sessionID进行登录,从而是Web不再进行生成新的sessionID(运气好有可能)

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器