介绍
在本实验中,你将学习如何使用 Burp Sequencer,这是 Burp Suite 中用于分析应用程序会话令牌(session tokens)随机性质量的强大工具。可预测的会话令牌可能被攻击者猜测或计算出来,从而导致会话劫持(session hijacking)漏洞。
完成本实验后,你将能够捕获登录请求,将其发送到 Burp Sequencer,配置该工具以分析特定的令牌,并解读结果以评估其随机性。这是 Web 应用程序安全评估的一项基本技能。
查找设置会话 Cookie 的登录请求
在此步骤中,你将启动 Burp Suite,使用其内置浏览器登录测试应用程序,并找到建立会话的请求。
首先,你需要启动 Burp Suite。通常可以在应用程序菜单中找到它,或者从终端启动。在本实验中,我们将假设 Burp Suite 已准备好启动。
- 从桌面打开终端(Terminal)。
- 启动 Burp Suite。确切的命令可能有所不同,但通常是一个脚本。在本环境中,我们将假设它可用。
- 打开 Burp Suite 后,转到
Proxy选项卡,然后是Intercept子选项卡。通过点击Intercept is on按钮,确保当前拦截已关闭(off)。 - 接下来,转到
Proxy->HTTP history选项卡。所有流量都将在此处记录。 - 点击
Open Browser按钮。这将启动 Burp 预配置的 Chromium 浏览器。 - 在浏览器中,导航到一个登录页面。在本实验中,我们将使用一个假设的登录页面。在实际测试中,这将是你的目标应用程序。
- 输入任意凭据,例如,用户名输入
user,密码输入password,然后点击登录按钮。 - 返回 Burp Suite 窗口,查看
Proxy->HTTP history选项卡。你应该会看到一个请求列表。找到发送到登录端点的POST请求。点击它。 - 在下方的请求/响应查看器中,点击
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 请求,你需要将其隔离以进行分析。
- 在
Proxy->HTTP history选项卡中,确保已选中正确的POST请求。 - 在历史记录表格中,右键单击该请求的任意位置。这将打开一个包含许多选项的上下文菜单。
- 在上下文菜单中,导航到并点击
Send to Sequencer。
此操作会将选定请求的副本发送到 Sequencer 工具。你现在会看到 Sequencer 选项卡标题变为橙色,表示它已收到新项目。
- 点击
Sequencer选项卡切换到该工具。你将在“Live Capture Request”面板中看到刚刚发送的请求已加载。
在 Sequencer 中选择包含 Cookie 的响应
在此步骤中,你将确认 Burp Sequencer 是否能正确发出请求并接收包含会话令牌的响应。
在 Sequencer 选项卡内,你将看到从 Proxy 发送的请求。在配置令牌位置之前,你需要确保 Sequencer 能够成功获取响应。
- 在
Sequencer选项卡中,查看“Select Live Capture Request”面板。请求应该已经加载。 - 点击此面板顶部的
Start live capture按钮。
Burp 将发送一次请求,并显示它收到的响应。这使你能够验证请求是否有效,以及服务器是否按预期响应了会话令牌。响应将出现在请求下方的面板中。
你应该会在响应中看到 Set-Cookie 标头,就像你在 Proxy history 中看到的一样。这确认了 Sequencer 已准备好进行下一步配置。如果出现错误,你可能需要返回 Proxy 并查找其他请求。
在响应中配置令牌位置
在此步骤中,你将告知 Burp Sequencer 在服务器响应中确切的位置来查找会话令牌。这是最重要的配置步骤。
启动实时捕获并收到有效响应后,你必须定义要分析的令牌的位置。
- 向下滚动到“Token Location Within Response”部分。
- 你有两个主要选项:“Custom location”和“Defined in a cookie”。由于令牌在
Set-Cookie标头中,因此第二个选项最简单。 - 点击“Defined in a cookie”旁边的单选按钮。
- 一个下拉菜单将变为可用。点击它并选择你之前识别的会话 Cookie 的名称(例如
sessionID)。
通过选择 Cookie,你是在告诉 Sequencer 从它收到的每个响应中自动提取该特定 Cookie 的值。此值将用于分析随机性。
选择 Cookie 后,配置即完成。Sequencer 现在知道要发送哪个请求以及在响应中何处找到令牌。
开始实时捕获并分析随机性结果
在此步骤中,你将开始收集大量的令牌样本,然后使用 Sequencer 的统计引擎来分析它们的随机性。
配置完成后,你就可以开始分析了。
- 再次点击
Start live capture按钮。这次,Burp 将持续发送请求,并从每个响应中收集会话令牌。 - 观察“Live Capture”结果面板。你将看到
Request count和Tokens collected的数字增加。 - 让捕获运行,直到你收集到至少 2,000 个令牌。为了进行彻底的分析,建议收集 10,000 到 20,000 个令牌,但对于本实验来说,2,000 个已足够。
- 收集到足够的令牌后,点击
Pause按钮,然后点击Analyze now按钮。
Burp 将对收集到的令牌执行一系列统计测试。结果将显示在几个选项卡中。
- 重点关注
Summary选项卡。它为你提供了令牌质量的整体评估。最重要的指标是随机性的整体质量,其估算值为有效熵(bits of effective entropy)。
高熵值(例如 128 bits)表示令牌非常强大且不可预测。低熵值(例如小于 64 bits)可能表明存在可能被利用的弱点。摘要将为你提供清晰的“Excellent”、“Good”、“Poor”或“Insecure”评级。
你可以探索其他选项卡,如 Character-level analysis 和 Bit-level analysis,以深入了解发现到的任何潜在弱点。
总结
在本实验中,你已成功学习如何使用 Burp Sequencer 对会话令牌执行统计分析。
你实践了整个工作流程:
- 使用 Burp Proxy 捕获设置了 Cookie 的登录请求。
- 将该请求发送到 Sequencer 工具。
- 配置 Sequencer 以在服务器响应中定位会话令牌。
- 运行实时捕获以收集大量的令牌样本。
- 分析收集到的数据以确定令牌随机性的有效熵和整体质量。
此过程是任何 Web 应用程序安全测试的关键部分,因为它有助于识别最常见和最严重的漏洞之一:可预测的会话管理。
