会话劫持

会话劫持发生在攻击者接管两台计算机之间有效会话时。攻击者会窃取有效的会话 ID 以入侵系统并窃取数据。

大多数身份验证仅发生在 TCP 会话开始时。在 TCP 会话劫持中,攻击者通过接管两台机器之间在会话过程中期的 TCP 会话来获取访问权限。

The attacker sniffs and accesses a legitimate session id from a user interacting with a web server, then uses that session identifier to spoof the session between the regular user and the server to exploit the user's session and access the server directly.

会话劫持发生的原因是

  • 没有对无效会话 ID 进行帐户锁定
  • 会话 ID 生成算法薄弱
  • 处理不安全
  • 会话到期时间不确定
  • 会话 ID 短
  • 以明文形式传输

会话劫持过程

  1. 嗅探,即执行中间人 (MITM) 攻击,将自己置于受害者和服务器之间。
  2. 监控服务器和用户之间流动的包。
  3. 断开受害者机器的连接。
  4. 控制会话。
  5. 注入使用受害者会话 ID 的新包到服务器。

防止会话劫持

  • 使用 SSH(安全外壳)创建安全通信通道
  • 通过 HTTPS 连接传递身份验证 Cookie
  • 实现注销功能,以便用户可以结束会话
  • 在成功登录后生成会话 ID
  • 在用户和 Web 服务器之间传递加密数据
  • 使用字符串或长随机数作为会话密钥

另请参阅