会话劫持
会话劫持(Session hijacking)是指攻击者接管两台计算机之间的有效会话。攻击者窃取有效的会话 ID 以便侵入系统并窃取数据。
大多数身份验证仅在 TCP 会话开始时进行。在 TCP 会话劫持中,攻击者通过在会话中间接管两台机器之间的 TCP 会话来获得访问权限。
会话劫持发生的原因
- 无效会话 ID 不会锁定帐户
- 弱会话 ID 生成算法
- 不安全的处理
- 无限会话过期时间
- 短会话 ID
- 明文传输
会话劫持过程
- 嗅探,即执行中间人(MITM)攻击,将自己置于受害者和服务器之间。
- 监视在服务器和用户之间流动的数据包。
- 中断受害者机器的连接。
- 接管会话。
- 使用受害者的会话 ID 注入新数据包到服务器。
防止会话劫持
- 使用 SSH(安全外壳)创建安全通信通道
- 通过 HTTPS 连接传递身份验证 cookie
- 实现注销功能,以便用户结束会话
- 在成功登录后生成会话 ID
- 在用户和 Web 服务器之间传递加密数据
- 使用字符串或长随机数作为会话密钥
参见
- 维基百科上的会话劫持