什么是会话劫持?

已发表: 2023-04-27

会话劫持是 WordPress 网站所有者需要了解的一种网络攻击。 也称为 TCP 会话劫持,会话劫持使攻击者看起来像是正确登录的用户。 攻击者通过在有效用户不知情或未经许可的情况下获取用户会话 ID 来接管用户会话。 攻击者窃取用户的会话 ID 后,他们可以伪装成目标用户。 在授权用户登录同一系统后,攻击者将能够执行授权用户可以执行的所有操作。

黑客可以对被劫持的会话做的最糟糕的事情之一是在未经身份验证的情况下访问 Web 应用程序或服务器控件。 当攻击者劫持用户的会话时,只要会话处于活动状态,他们就不需要对自己进行身份验证。 生成会话的应用程序认为他们是经过身份验证的用户,他们劫持了其会话。

换句话说,黑客将享有与他们所入侵的用户相同的访问权限。 由于合法用户在攻击发生之前已经验证了他们的会话,成功的劫持可以让攻击者完全绕过验证。

在本指南中,我们将深入探讨会话劫持的细节。 我们将准确地向您展示您需要做什么来防止它发生在您的 WordPress 网站上。

会话到底是什么?

会话只是在整个单个 HTTP 连接中发生的通信端点之间的一系列交互。

超文本传输​​协议 (HTTP) 是网络的基础。 它允许您使用超文本链接和加载网页。 HTTP 也是一种应用层协议,用于在网络上的设备之间传递信息。

HTTP 的一个关键特征是它是“无状态的”。 这意味着它不会保存有关打开网站会话的客户(如您和您的浏览器)的任何数据。 每个会话都是全新的。 HTTP 不保留有关用户以前会话的数据。

处理无状态

像 WordPress 这样的 Web 应用程序需要跟踪来自相同和不同用户的多个连接之间的状态。 它需要识别每个用户的会话,一旦他们登录——可能在多个设备或浏览器上。

当用户登录到 WordPress 等应用程序时,服务器会创建一个会话。 会话将通过存储用户独有的参数来维护用户的连接“状态”。 在用户登录到应用程序的整个期间,会话在服务器上保持活动状态。

当用户注销系统或在预定义的无活动时间后,会话结束。 当用户会话结束时,应用程序应从服务器内存中删除其数据。

会话标识符

会话 ID(或“密钥”或“令牌”)是唯一的会话标识符。 通常,它们是服务器和客户端相互传输的长而随机的字母数字字符串。 身份验证应用程序通常将会话 ID 存储在 URL、cookie 或网页上的隐藏字段中。

虽然会话 ID 对于在无状态系统中维护状态很有用,但它们也有一些潜在的安全隐患。 例如,如果我们了解为 Web 应用程序生成会话 ID 的算法,我们就可以自己生成它们。 此外,如果 Web 应用程序未使用 SSL 加密将 HTTP 加密为 HTTPS,它将以明文形式传输会话 ID。 在公共网络上,任何人都可以窃听未加密的连接并窃取会话 ID。

会话劫持在实践中究竟是如何工作的?

一次成功的会话劫持攻击是极其隐蔽的。 它们通常是在非常繁忙的网络上完成的,有很多活跃的通信会话。

一些最常见的会话劫持形式利用:

  • 可预测的会话令牌 ID
  • 会话嗅探
  • 会话劫持
  • 浏览器中间人恶意软件
  • 跨站脚本
  • 会话固定

让我们分别看一下这些威胁向量中的每一个。

可预测的会话令牌 ID

许多 Web 服务器使用自定义算法或预定义模式来生成它们的会话 ID。 唯一会话令牌的整体可预测性越大,它就越弱。

黑客越容易预测。

会话嗅探

会话嗅探是黑客进行应用层会话劫持最简单、最基本的手段之一。

攻击者将使用数据包嗅探器(例如 Wireshark)或代理(例如 OWASP Zed)来捕获网络流量。 如果此流量包含客户端与网站之间连接的未加密会话 ID,则这些 ID 可能会被盗。 黑客可以使用有效的 ID 或令牌快速获得对站点及其用户帐户的未授权访问。

会话劫持

攻击者可以使用数据包嗅探来拦截用户登录站点时的会话 cookie。 如果登录页面未加密或使用弱加密,网络犯罪分子可以通过这种方式轻松劫持用户会话。

浏览器中间人

在这种攻击中,攻击者必须先用恶意软件感染受害者的计算机或浏览器。

这种恶意软件可以在用户不知情的情况下无形地修改浏览器交易信息并创建交易。 损坏的浏览器的请求是由受害者的物理设备发起的,因此它们被认为是有效的。

跨站脚本

网络罪犯可能会利用应用程序或服务器漏洞将任意代码注入站点的网页。 这将导致访问者的浏览器在加载受感染页面时执行该代码。

当会话 cookie 中未设置 HTTP-only 时,可以通过注入代码窃取会话密钥。 这将为攻击者提供劫持用户会话所需的一切。

会话固定

这使用尚未经过身份验证的有效会话 ID。 使用会话固定,攻击者将尝试诱骗用户使用此特定 ID 进行身份验证。

一旦身份验证发生,攻击者现在就可以完全访问受害者的计算机。

会话固定探索了 Web 应用程序如何管理会话 ID 的一个很大限制。

黑客从会话劫持中得到了什么?

当黑客劫持会话时,他们可以执行合法用户在该活动会话中被授权执行的任何操作。

最有效且最具破坏性的会话劫持可能会导致:

  • 受损的银行账户
  • 未经授权在线购买物品
  • 识别盗窃
  • 从公司内部系统窃取数据

不好! 一次成功的会话劫持会话会造成很大的破坏。

会话劫持的一些例子是什么?

2012 年秋天,两位名叫 Juliano Rizzo 和 Thai Duong 的安全研究人员宣布了 CRIME,这是一种利用 TLS 请求压缩比内的信息泄漏作为侧通道的攻击。 这使他们能够解密客户端向服务器发出的请求。

反过来,这使他们能够获取用户的登录 cookie 并劫持会话,在电子商务网站和银行等高价值在线目的地上冒充他们。

该演示展示了黑客如何执行此类攻击来恢复 HTTP 请求的标头。

CRIME 致力于解密网站设置的 HTTPS cookie,以使用暴力破解来记住经过身份验证的用户。 攻击代码迫使受害者的浏览器向目标网站发送特制的 HTTPS 请求,并在压缩后分析它们的长度变化,以确定受害者的会话 cookie 的值。 这是可能的,因为 SSL/TLS 使用称为 DEFLATE 的压缩算法,它消除了重复的字符串,正如我们在上面看到的。

由于浏览器中的安全机制,攻击代码无法读取请求中包含的会话 cookie。 但是,它可以控制每个新请求的路径,并可以向其中插入不同的字符串以尝试匹配 cookie 的值。

会话 cookie 值可以很长。 它们由大小写字母和数字构成。

因此,CRIME 攻击代码必须发起大量请求来解密它们,这可能需要几分钟时间。

会话劫持预防

重要的是要记住,攻击者可以在不安全地传输或存储会话 ID(或其他敏感的 cookie 值)时窃取和重用它们。 虽然不能保证 100% 的保护,但使用加密是主要的防御措施。

当用户进行身份验证时,SSL 和安全 cookie 需要是强制性的。 当经过身份验证的用户访问多个安全页面时,他们需要被迫使用 HTTPS。

除此之外,WordPress 网站所有者需要使用 iThemes Security Pro WordPress 安全插件来保护会话劫持。 iThemes Security Pro 中内置的可信设备功能将每周 7 天、每天 24 小时工作,以帮助保护您的站点免受这种危险攻击。 了解如何为您网站的用户设置它。

了解和防止会话劫持

通过本指南中的信息,您了解保护 WordPress 站点免受会话劫持所需的一切:

  1. 确保您的站点使用 SSL 完全加密,并强制用户使用 HTTPS。
  2. 下载并安装 iThemes Security Pro 插件。

通过采取这些简单的步骤,您将保护您的站点免受会话劫持。