在 Burp Suite 中比较两个站点地图

Beginner
立即练习

引言

在本实验中,你将学习如何使用 Burp Suite 的一个强大功能:“比较站点地图”(Compare site maps)。此功能对于 Web 应用程序安全测试至关重要,尤其是在识别授权漏洞方面。通过比较不同权限级别用户可访问的站点结构和内容,你可以快速发现未正确暴露的端点或数据。

你将执行以下操作:

  1. 启动一个简单的本地 Web 应用程序,该应用程序包含两个用户角色:普通用户和管理员。
  2. 使用 Burp Suite 的内置浏览器,以低权限用户身份浏览应用程序。
  3. 启动站点地图比较过程,将低权限用户的视图保存为第一个地图。
  4. 以高权限用户身份登录,并再次浏览应用程序,以填充包含新管理功能的站点地图。
  5. 完成比较并分析结果,以识别仅管理员可访问的内容和端点。

以低权限用户身份浏览应用程序

在此步骤中,你将启动 Burp Suite,配置其浏览器,并以标准低权限用户身份浏览目标应用程序。这将用该用户可访问的所有端点和资源填充 Burp 的站点地图。

首先,打开 Burp Suite。你可以在应用程序菜单中找到它,通常在 Applications -> Other -> Burp Suite Community Edition 下。出现提示时,选择一个临时项目,然后点击 Next,再点击 Start Burp

Burp Suite 运行后,你需要使用其嵌入式浏览器来确保所有流量都已正确代理。

  1. 转到 Proxy 选项卡,然后是 Intercept 子选项卡。
  2. 点击 Open Browser 按钮。一个新的 Chromium 浏览器窗口将会打开。

现在,使用此浏览器与 Web 应用程序进行交互。

  1. 在新浏览器的地址栏中,导航到 http://127.0.0.1:5000
  2. 你将看到一个登录页面。在用户名处输入 user,在密码处输入 password
  3. 点击 Login 按钮。
  4. 你将被重定向到用户仪表板。如果存在任何链接,请点击它们,但对于这个简单的应用程序,仅查看仪表板就足够了。

现在,返回主 Burp Suite 窗口,导航到 Target -> Site map 选项卡。你将看到应用程序的结构已根据你的浏览进行了映射。

在 Target > Site map 中,选择 Host 并执行 'Compare site maps'

在此步骤中,你将启动站点地图比较过程。你已经用低权限用户的视角填充了站点地图。现在,你将告诉 Burp Suite 你希望将当前地图作为比较的第一个参照点。

  1. 在 Burp Suite 窗口中,确保你位于 Target -> Site map 选项卡。
  2. 在左侧窗格中,你将看到一个你已访问站点的树状视图。找到并选择我们应用程序的 host,即 http://127.0.0.1:5000
  3. 右键单击 host http://127.0.0.1:5000。这将打开一个包含许多选项的上下文菜单。
  4. 在上下文菜单中,导航到 Engagement tools,然后点击 Compare site maps

此操作将打开“Compare site maps”向导,它将引导你完成比较的设置。

(图片描述:一张截图,显示了 Burp Suite 站点地图中的右键上下文菜单,光标在“Engagement tools”下突出显示了“Compare site maps”选项。)

在向导中,为 Map 1 选择 'Use current site map'

在此步骤中,你将配置用于比较的两个站点地图中的第一个。你在上一步打开的向导允许你定义两个地图的来源。

“Compare site maps”向导现已打开。它有两个主要部分,一个用于“Site map 1”,另一个用于“Site map 2”。你现在将配置第一个地图,稍后配置第二个地图。

  1. 在“Site map 1”配置区域,你将看到几个关于从何处加载地图的选项。
  2. 选择标记为 Use current site map 的单选按钮。这告诉 Burp 捕获当前站点地图的快照(反映低权限用户的会话),并将其用作比较的基线。
  3. 暂时不要点击 OK。向导需要为两个地图进行配置。目前,你已设置了第一个地图。你将保持此向导打开状态,同时执行后续操作。

你现在已成功定义了用于比较的第一个站点地图。向导将等待你定义第二个地图。

以高权限用户身份登录并重新请求站点地图

在此步骤中,你将切换到高权限用户账户并再次浏览应用程序。这将向 Burp 的站点地图添加新的、仅限管理员访问的端点,这正是我们希望在比较中检测到的内容。

  1. 返回到 Burp 内嵌的 Chromium 浏览器窗口。
  2. 导航回 http://127.0.0.1:5000 的登录页面。这会有效地将你从 'user' 账户登出。
  3. 在登录页面,输入 admin 作为用户名,adminpassword 作为密码。
  4. 点击 Login 按钮。
  5. 你将被重定向到仪表板,该仪表板现在显示了 'admin' 用户的欢迎消息,并包含一个新链接:Go to Admin Panel
  6. 点击 Go to Admin Panel 链接。这将带你到 /admin 页面,该页面是普通用户无法访问的。

通过执行这些操作,你已促使 Burp Suite 记录了对新端点(如 /admin)的请求,并看到了现有端点(如 /dashboard)的不同响应。Burp 中的实时站点地图现已更新了这些新信息。

为 Map 2 选择 'Use current site map' 并查看差异

在最后一步中,你将完成比较配置并分析结果,以找出低权限和高权限会话之间的差异。

  1. 返回到 Burp Suite 窗口,此时“Compare site maps”向导应该仍然是打开的。
  2. 现在将注意力集中在“Site map 2”配置区域。
  3. 就像你为第一个地图所做的那样,选择标记为 Use current site map 的单选按钮。这一次,“current”地图包含了来自低权限和高权限会话的所有请求。
  4. 点击 OK 按钮来运行比较。

一个新的“Site map comparison”窗口将会出现,显示结果。这个窗口有三个主要面板,展示了:

  • Items only in map 1: 仅存在于第一个会话中的端点,而第二个会话中不存在。
  • Items only in map 2: 仅在第二个会话中发现的端点。你将在此处找到授权问题。
  • Items with different responses: 两个用户都可以访问的端点,但返回的内容不同。

查看“Items only in map 2”列表。你应该会看到 /admin 端点。这立即告诉你 /admin 页面仅对高权限用户可访问或可发现。

点击“Items with different responses”列表中的 /dashboard 条目。在底部,你可以看到每个地图的请求和响应。使用 Diff 按钮可以查看并排比较,这将突出显示管理员可用的额外“Go to Admin Panel”链接。

总结

在本实验中,你已成功使用 Burp Suite 的“Compare site maps”功能来分析应用程序的访问控制。你学会了如何从两个不同用户的视角系统地捕获应用程序的状态,然后进行比较以自动识别差异。

具体来说,你发现了一个标准用户看不到的管理端点 (/admin),这是此技术有助于揭示的经典授权漏洞示例。这种方法是彻底的 Web 应用程序安全评估的基础部分,它能让你有效地绘制出攻击面并找到潜在的安全缺陷。