引言
在本实验中,你将学习如何使用 Burp Suite 的一个强大功能:“比较站点地图”(Compare site maps)。此功能对于 Web 应用程序安全测试至关重要,尤其是在识别授权漏洞方面。通过比较不同权限级别用户可访问的站点结构和内容,你可以快速发现未正确暴露的端点或数据。
你将执行以下操作:
- 启动一个简单的本地 Web 应用程序,该应用程序包含两个用户角色:普通用户和管理员。
- 使用 Burp Suite 的内置浏览器,以低权限用户身份浏览应用程序。
- 启动站点地图比较过程,将低权限用户的视图保存为第一个地图。
- 以高权限用户身份登录,并再次浏览应用程序,以填充包含新管理功能的站点地图。
- 完成比较并分析结果,以识别仅管理员可访问的内容和端点。
以低权限用户身份浏览应用程序
在此步骤中,你将启动 Burp Suite,配置其浏览器,并以标准低权限用户身份浏览目标应用程序。这将用该用户可访问的所有端点和资源填充 Burp 的站点地图。
首先,打开 Burp Suite。你可以在应用程序菜单中找到它,通常在 Applications -> Other -> Burp Suite Community Edition 下。出现提示时,选择一个临时项目,然后点击 Next,再点击 Start Burp。
Burp Suite 运行后,你需要使用其嵌入式浏览器来确保所有流量都已正确代理。
- 转到
Proxy选项卡,然后是Intercept子选项卡。 - 点击
Open Browser按钮。一个新的 Chromium 浏览器窗口将会打开。
现在,使用此浏览器与 Web 应用程序进行交互。
- 在新浏览器的地址栏中,导航到
http://127.0.0.1:5000。 - 你将看到一个登录页面。在用户名处输入
user,在密码处输入password。 - 点击
Login按钮。 - 你将被重定向到用户仪表板。如果存在任何链接,请点击它们,但对于这个简单的应用程序,仅查看仪表板就足够了。
现在,返回主 Burp Suite 窗口,导航到 Target -> Site map 选项卡。你将看到应用程序的结构已根据你的浏览进行了映射。
在 Target > Site map 中,选择 Host 并执行 'Compare site maps'
在此步骤中,你将启动站点地图比较过程。你已经用低权限用户的视角填充了站点地图。现在,你将告诉 Burp Suite 你希望将当前地图作为比较的第一个参照点。
- 在 Burp Suite 窗口中,确保你位于
Target->Site map选项卡。 - 在左侧窗格中,你将看到一个你已访问站点的树状视图。找到并选择我们应用程序的 host,即
http://127.0.0.1:5000。 - 右键单击 host
http://127.0.0.1:5000。这将打开一个包含许多选项的上下文菜单。 - 在上下文菜单中,导航到
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”。你现在将配置第一个地图,稍后配置第二个地图。
- 在“Site map 1”配置区域,你将看到几个关于从何处加载地图的选项。
- 选择标记为
Use current site map的单选按钮。这告诉 Burp 捕获当前站点地图的快照(反映低权限用户的会话),并将其用作比较的基线。 - 暂时不要点击
OK。向导需要为两个地图进行配置。目前,你已设置了第一个地图。你将保持此向导打开状态,同时执行后续操作。
你现在已成功定义了用于比较的第一个站点地图。向导将等待你定义第二个地图。
以高权限用户身份登录并重新请求站点地图
在此步骤中,你将切换到高权限用户账户并再次浏览应用程序。这将向 Burp 的站点地图添加新的、仅限管理员访问的端点,这正是我们希望在比较中检测到的内容。
- 返回到 Burp 内嵌的 Chromium 浏览器窗口。
- 导航回
http://127.0.0.1:5000的登录页面。这会有效地将你从 'user' 账户登出。 - 在登录页面,输入
admin作为用户名,adminpassword作为密码。 - 点击
Login按钮。 - 你将被重定向到仪表板,该仪表板现在显示了 'admin' 用户的欢迎消息,并包含一个新链接:
Go to Admin Panel。 - 点击
Go to Admin Panel链接。这将带你到/admin页面,该页面是普通用户无法访问的。
通过执行这些操作,你已促使 Burp Suite 记录了对新端点(如 /admin)的请求,并看到了现有端点(如 /dashboard)的不同响应。Burp 中的实时站点地图现已更新了这些新信息。
为 Map 2 选择 'Use current site map' 并查看差异
在最后一步中,你将完成比较配置并分析结果,以找出低权限和高权限会话之间的差异。
- 返回到 Burp Suite 窗口,此时“Compare site maps”向导应该仍然是打开的。
- 现在将注意力集中在“Site map 2”配置区域。
- 就像你为第一个地图所做的那样,选择标记为
Use current site map的单选按钮。这一次,“current”地图包含了来自低权限和高权限会话的所有请求。 - 点击
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 应用程序安全评估的基础部分,它能让你有效地绘制出攻击面并找到潜在的安全缺陷。
