在 Burp Sequencer 中分析会话令牌随机性

Beginner
立即练习

介绍

在本实验中,你将学习如何使用 Burp Sequencer,这是 Burp Suite 中用于分析应用程序会话令牌(session tokens)随机性质量的强大工具。可预测的会话令牌可能被攻击者猜测或计算出来,从而导致会话劫持(session hijacking)漏洞。

完成本实验后,你将能够捕获登录请求,将其发送到 Burp Sequencer,配置该工具以分析特定的令牌,并解读结果以评估其随机性。这是 Web 应用程序安全评估的一项基本技能。

在此步骤中,你将启动 Burp Suite,使用其内置浏览器登录测试应用程序,并找到建立会话的请求。

首先,你需要启动 Burp Suite。通常可以在应用程序菜单中找到它,或者从终端启动。在本实验中,我们将假设 Burp Suite 已准备好启动。

  1. 从桌面打开终端(Terminal)。
  2. 启动 Burp Suite。确切的命令可能有所不同,但通常是一个脚本。在本环境中,我们将假设它可用。
  3. 打开 Burp Suite 后,转到 Proxy 选项卡,然后是 Intercept 子选项卡。通过点击 Intercept is on 按钮,确保当前拦截已关闭(off)。
  4. 接下来,转到 Proxy -> HTTP history 选项卡。所有流量都将在此处记录。
  5. 点击 Open Browser 按钮。这将启动 Burp 预配置的 Chromium 浏览器。
  6. 在浏览器中,导航到一个登录页面。在本实验中,我们将使用一个假设的登录页面。在实际测试中,这将是你的目标应用程序。
  7. 输入任意凭据,例如,用户名输入 user,密码输入 password,然后点击登录按钮。
  8. 返回 Burp Suite 窗口,查看 Proxy -> HTTP history 选项卡。你应该会看到一个请求列表。找到发送到登录端点的 POST 请求。点击它。
  9. 在下方的请求/响应查看器中,点击 Response 选项卡。查找 Set-Cookie 标头。它看起来会像这样:
HTTP/1.1 302 Found
...
Set-Cookie: sessionID=q8f...; path=/; HttpOnly
...

这个 sessionID 就是我们想要分析的令牌。你已成功识别出目标请求。

右键单击 Proxy History 中的请求并选择“Send to Sequencer”

在此步骤中,你将把已识别的登录请求发送到 Burp Sequencer 工具进行分析。

现在你已经在 Proxy history 中找到了设置会话 Cookie 的 POST 请求,你需要将其隔离以进行分析。

  1. Proxy -> HTTP history 选项卡中,确保已选中正确的 POST 请求。
  2. 在历史记录表格中,右键单击该请求的任意位置。这将打开一个包含许多选项的上下文菜单。
  3. 在上下文菜单中,导航到并点击 Send to Sequencer

此操作会将选定请求的副本发送到 Sequencer 工具。你现在会看到 Sequencer 选项卡标题变为橙色,表示它已收到新项目。

  1. 点击 Sequencer 选项卡切换到该工具。你将在“Live Capture Request”面板中看到刚刚发送的请求已加载。

在此步骤中,你将确认 Burp Sequencer 是否能正确发出请求并接收包含会话令牌的响应。

Sequencer 选项卡内,你将看到从 Proxy 发送的请求。在配置令牌位置之前,你需要确保 Sequencer 能够成功获取响应。

  1. Sequencer 选项卡中,查看“Select Live Capture Request”面板。请求应该已经加载。
  2. 点击此面板顶部的 Start live capture 按钮。

Burp 将发送一次请求,并显示它收到的响应。这使你能够验证请求是否有效,以及服务器是否按预期响应了会话令牌。响应将出现在请求下方的面板中。

你应该会在响应中看到 Set-Cookie 标头,就像你在 Proxy history 中看到的一样。这确认了 Sequencer 已准备好进行下一步配置。如果出现错误,你可能需要返回 Proxy 并查找其他请求。

在响应中配置令牌位置

在此步骤中,你将告知 Burp Sequencer 在服务器响应中确切的位置来查找会话令牌。这是最重要的配置步骤。

启动实时捕获并收到有效响应后,你必须定义要分析的令牌的位置。

  1. 向下滚动到“Token Location Within Response”部分。
  2. 你有两个主要选项:“Custom location”和“Defined in a cookie”。由于令牌在 Set-Cookie 标头中,因此第二个选项最简单。
  3. 点击“Defined in a cookie”旁边的单选按钮。
  4. 一个下拉菜单将变为可用。点击它并选择你之前识别的会话 Cookie 的名称(例如 sessionID)。

通过选择 Cookie,你是在告诉 Sequencer 从它收到的每个响应中自动提取该特定 Cookie 的值。此值将用于分析随机性。

选择 Cookie 后,配置即完成。Sequencer 现在知道要发送哪个请求以及在响应中何处找到令牌。

开始实时捕获并分析随机性结果

在此步骤中,你将开始收集大量的令牌样本,然后使用 Sequencer 的统计引擎来分析它们的随机性。

配置完成后,你就可以开始分析了。

  1. 再次点击 Start live capture 按钮。这次,Burp 将持续发送请求,并从每个响应中收集会话令牌。
  2. 观察“Live Capture”结果面板。你将看到 Request countTokens collected 的数字增加。
  3. 让捕获运行,直到你收集到至少 2,000 个令牌。为了进行彻底的分析,建议收集 10,000 到 20,000 个令牌,但对于本实验来说,2,000 个已足够。
  4. 收集到足够的令牌后,点击 Pause 按钮,然后点击 Analyze now 按钮。

Burp 将对收集到的令牌执行一系列统计测试。结果将显示在几个选项卡中。

  1. 重点关注 Summary 选项卡。它为你提供了令牌质量的整体评估。最重要的指标是随机性的整体质量,其估算值为有效熵(bits of effective entropy)

高熵值(例如 128 bits)表示令牌非常强大且不可预测。低熵值(例如小于 64 bits)可能表明存在可能被利用的弱点。摘要将为你提供清晰的“Excellent”、“Good”、“Poor”或“Insecure”评级。

你可以探索其他选项卡,如 Character-level analysisBit-level analysis,以深入了解发现到的任何潜在弱点。

总结

在本实验中,你已成功学习如何使用 Burp Sequencer 对会话令牌执行统计分析。

你实践了整个工作流程:

  • 使用 Burp Proxy 捕获设置了 Cookie 的登录请求。
  • 将该请求发送到 Sequencer 工具。
  • 配置 Sequencer 以在服务器响应中定位会话令牌。
  • 运行实时捕获以收集大量的令牌样本。
  • 分析收集到的数据以确定令牌随机性的有效熵和整体质量。

此过程是任何 Web 应用程序安全测试的关键部分,因为它有助于识别最常见和最严重的漏洞之一:可预测的会话管理。