Kali Linux 下使用 Burp Suite 进行 Web 测试

Kali LinuxKali LinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在这个实验中,你将学习如何在 LabEx 虚拟机环境中,使用 Burp Suite 在 Kali Linux 容器内进行 Web 应用程序安全测试。重点是设置 Burp Proxy 来拦截 Web 流量,分析 HTTP/HTTPS 请求,测试跨站脚本攻击(Cross-Site Scripting,XSS)漏洞,以及生成详细报告。这些实践步骤将为你提供识别和解决 Web 应用程序中安全问题的基本技能。

你将直接在 Kali Linux 容器 shell 中工作,当你打开终端时,它会自动为你设置好。通过结构化的步骤,你将配置工具、捕获流量、测试漏洞并记录你的发现。这个实验是为初学者设计的,它将引导你完成每个过程,在一个受控的环境中建立实用的网络安全技能。

安装和启动 Burp Suite

在第一步中,你将在 LabEx 虚拟机环境的 Kali Linux 容器内安装并启动 Burp Suite,这是一个用于 Web 应用程序安全测试的强大工具。Burp Suite 允许你拦截和分析 Web 流量,这对于识别 Web 应用程序中的漏洞至关重要。

当你打开 LabEx 虚拟机中的终端时,你将自动连接到 Kali Linux 容器的 shell。无需手动启动容器或进入 shell;环境已经为你配置好了。让我们从确保安装了必要的工具并准备好使用开始。

首先,更新软件包列表,以确保你拥有关于可用软件的最新信息。在终端中,键入以下命令并按 Enter 键:

apt update

此命令会刷新软件包存储库数据。它可能需要几秒钟才能完成,你将看到输出,指示更新过程的进度。

接下来,安装 Burp Suite Community Edition,它在 Kali Linux 存储库中可用。键入以下命令并按 Enter 键:

apt install -y burpsuite

由于 -y 标志,此命令安装 Burp Suite 时不会提示确认。安装可能需要一两分钟,你将看到显示下载和安装进度的输出。

预期输出(部分,实际输出可能有所不同):

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up burpsuite (2023.10.3.7-0kali1) ...

安装完成后,通过键入以下命令并按 Enter 键来启动 Burp Suite:

burpsuite

这将打开 Burp Suite 图形用户界面(GUI)。它可能需要几秒钟才能加载。当提示时,选择默认的“Temporary Project”选项,然后单击“Next”或“Start Burp”继续。你将看到 Burp Suite 主窗口出现。

Burp Suite 现在正在运行,在接下来的步骤中,你将配置它来拦截 Web 流量。在继续操作时,保持 Burp Suite 窗口打开。此步骤确保你已准备好用于 Web 安全测试任务的主要工具。

配置 Burp Proxy 设置

现在 Burp Suite 已经安装并运行,下一步是配置 Burp Proxy 设置以拦截 Web 流量。代理充当你的浏览器和互联网之间的中介,允许你捕获和分析 HTTP/HTTPS 请求和响应。这是 Web 应用程序安全测试的关键设置。

对于初学者来说,理解代理的作用很重要。代理位于你的浏览器和目标网站之间,拦截所有交换的数据。这使你能够检查浏览器发送的原始请求以及服务器的响应,从而帮助识别潜在的安全问题。

由于你已经在 Kali Linux 容器 shell 中(当你打开终端时自动进入),让我们直接在 Burp Suite GUI 中配置代理设置。确保 Burp Suite 仍然从上一步运行。如果不是,请在终端中键入 burpsuite 并按 Enter 键重新启动它。

在 Burp Suite 窗口中,导航到“Proxy”选项卡。此选项卡包含用于配置 Burp Suite 如何拦截流量的设置。在“Proxy Settings”部分下,确保代理设置为监听 127.0.0.1:8080。这是默认配置,这意味着 Burp Proxy 将在你的本地机器上的端口 8080 上捕获流量。

如果设置未设置为 127.0.0.1:8080,请通过输入这些值手动调整它们,如果该选项可用,请单击“Apply”。在此阶段不要修改其他设置。

要确认代理已激活,请在终端中运行以下命令并按 Enter 键:

netstat -tuln | grep 8080

预期输出(实际输出可能有所不同):

tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN

此输出显示 Burp Proxy 正在端口 8080 上监听。如果你没有看到此输出,请确保 Burp Suite 正在运行并且代理设置已正确配置。

你现在已经成功设置了 Burp Proxy 来拦截 Web 流量。保持 Burp Suite 打开这些设置,因为我们将进入下一步,你将在其中配置浏览器以通过此代理路由流量。此配置对于在后续任务中捕获和分析 Web 交互至关重要。

设置 Firefox 以使用 Burp Proxy

配置好 Burp Proxy 后,下一步是设置 Web 浏览器以通过代理路由其流量。这允许 Burp Suite 捕获并显示浏览器发出的所有 HTTP/HTTPS 请求和响应。对于此实验,你将使用 Firefox,它将在 Kali Linux 容器内安装和配置。

由于你已经在 Kali Linux 容器 shell 中(打开终端时自动进入),让我们从安装 Firefox 开始,如果它尚未安装的话。在终端中键入以下命令并按 Enter 键以安装 Firefox:

apt install -y firefox-esr

此命令安装 Firefox 的 Extended Support Release (ESR) 版本,适用于在 Kali Linux 中使用。安装可能需要几分钟,你将看到指示进度的输出。

预期输出(部分,实际输出可能有所不同):

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up firefox-esr (102.10.0esr-1~deb11u1) ...

安装 Firefox 后,通过在终端中键入以下命令并按 Enter 键来启动它:

firefox &

& 符号在后台运行 Firefox,允许你继续使用终端。一个 Firefox 窗口将在 LabEx 虚拟机的图形界面中打开。

现在,配置 Firefox 以使用 Burp Proxy。在 Firefox 浏览器窗口中按照以下详细说明操作:

  1. 单击 Firefox 右上角的菜单图标(三个水平线)。
  2. 从下拉菜单中选择“Settings”。
  3. 在“General”选项卡下,向下滚动到“Network Settings”部分,然后单击“Settings…”
  4. 在“Connection Settings”窗口中,选择“Manual proxy configuration”。
  5. 将“HTTP Proxy”字段设置为 127.0.0.1,并将“Port”设置为 8080
  6. 选中标记为“Also use this proxy for HTTPS”的复选框。
  7. 保持其他字段不变,然后单击“OK”以保存设置。

此设置确保来自 Firefox 的所有 Web 流量都通过 Burp Proxy 在 127.0.0.1:8080 处传递。要验证一切是否正常工作,请在 Firefox 中导航到简单的网站,例如 http://example.com,方法是在地址栏中键入 URL 并按 Enter 键。

切换回 Burp Suite 窗口,转到“Proxy”选项卡,然后选择“HTTP history”子选项卡。你应该在那里看到对 example.com 发出的请求的列表。如果未显示任何请求,请在 Firefox 中刷新页面并确认代理设置是否正确。

Burp Suite 中的预期输出(视觉,非终端):

你将在“HTTP history”选项卡中看到条目,显示对 example.com 的请求,其中包含详细信息,例如主机、方法(例如,GET)和 URL 路径。

此步骤完成了浏览器设置,以通过 Burp Proxy 路由流量。在进入下一步时,保持 Firefox 和 Burp Suite 都打开,你将使用此配置来捕获和分析 Web 流量以进行安全测试。

捕获和分析 Web 流量

在配置 Firefox 以使用 Burp Proxy 后,你现在已准备好捕获和分析 Web 流量。此步骤在 Web 应用程序安全测试中至关重要,因为它允许你检查浏览器和网站之间交换的原始数据,从而帮助识别潜在的漏洞或错误配置。

对于初学者来说,捕获 Web 流量意味着记录你的浏览器发送到网站(例如加载页面)的请求以及网站发回的响应(例如页面内容)。Burp Suite 充当中间人,向你详细显示这些数据,以便你可以检查标头、参数和内容以查找安全问题。

由于你正在 Kali Linux 容器 shell 中工作(打开终端时自动进入),请确保 Burp Suite 和 Firefox 仍然从之前的步骤运行。如果 Burp Suite 未运行,请使用 burpsuite 重新启动它。如果 Firefox 未打开,请使用 firefox & 启动它。

在 Firefox 中,通过在地址栏中键入 URL 并按 Enter 键,导航到测试网站,例如 http://example.com。此操作通过 Burp Proxy 发送请求,Burp Proxy 会捕获这些请求以进行分析。

切换到 Burp Suite 窗口,转到“Proxy”选项卡,然后选择“HTTP history”子选项卡。你将看到 Firefox 发送到该网站的请求列表。每个条目都包含详细信息,例如主机、方法(例如,GET)和 URL 路径。

通过单击它来选择与 http://example.com 相关的任何请求。这将显示两个窗格:“Request”和“Response”。“Request”窗格显示从你的浏览器发送的数据,包括标头和参数。“Response”窗格显示网站返回的数据,例如 HTML 内容或状态代码。

Burp Suite 中的预期输出(视觉,非终端):

在“HTTP history”选项卡中,你将看到类似以下条目:

  • Host: example.com
  • Method: GET
  • Path: /

单击条目将显示详细的请求标头(例如 User-Agent)和响应内容(例如页面的 HTML 代码)。

花一点时间探索一些请求,以了解 Web 流量的结构。捕获和分析流量的这项技能是识别安全问题的基础,你将在下一步的基础上构建它。在继续测试特定漏洞时,保持 Burp Suite 和 Firefox 使用当前设置打开。

测试 XSS 漏洞

设置好 Web 流量捕获后,你现在可以使用 Burp Suite 测试跨站点脚本(XSS)漏洞。XSS 是一种常见的 Web 安全问题,攻击者会将恶意脚本注入到 Web 页面中,然后在用户的浏览器中执行这些脚本。此步骤侧重于通过提交测试输入并分析响应来识别潜在的 XSS 缺陷。

对于初学者来说,当 Web 应用程序未能清理用户输入时,就会发生 XSS,从而允许注入和执行有害代码(如 JavaScript)。XSS 有不同的类型,但在这里你将测试反射型 XSS,其中恶意输入会立即在服务器的响应中被反射回来,而不会被存储。

由于你位于 Kali Linux 容器 shell 中(打开终端时自动进入),请确保 Burp Suite 和 Firefox 仍然从之前的步骤运行。如果不是,请分别使用 burpsuitefirefox & 重新启动它们。

在 Firefox 中,导航到接受用户输入的测试网站,例如搜索框或表单。对于此实验,如果 LabEx 虚拟机中未提供特定的测试站点,你可以使用公共测试站点,例如 http://testphp.vulnweb.com(如果可访问)。在 Firefox 地址栏中键入 URL 并按 Enter 键。

页面加载后,找到一个输入字段,例如搜索栏。在字段中输入一个简单的测试字符串,例如 test<xss>,然后提交表单。此输入是无害的,但有助于检查应用程序是否在没有清理的情况下反射输入。

切换到 Burp Suite,转到“Proxy”选项卡,然后选择“HTTP history”子选项卡。找到与你的表单提交相对应的请求。单击它以查看详细信息。在“Request”窗格中,查找发送你的输入 test<xss> 的参数(它可能位于 searchquery 等字段下)。

然后,在“Response”窗格中,搜索你的输入字符串 test<xss>。如果你看到确切的字符串在响应中被反射而没有被转义(例如,未转换为 test&lt;xss&gt;),则该应用程序可能容易受到反射型 XSS 的攻击。

Burp Suite 中的预期输出(视觉,非终端):

在“Response”窗格中,如果你看到 test<xss> 原样出现在 HTML 内容中,则表明存在潜在的漏洞。如果它显示为 test&lt;xss&gt;,则输入已被清理,从而降低了 XSS 的风险。

如果你确定了潜在的漏洞,请在“HTTP history”选项卡中右键单击该请求,然后选择“Add to site map”以将其组织起来,以便在下一步中进行报告。通过提交测试数据和分析响应来测试 XSS 的过程可以培养你在漏洞评估方面的技能。在进入最后一步时,保持 Burp Suite 和 Firefox 打开。

生成 Burp Suite 报告

在最后一步中,你将生成 Burp Suite 报告,以记录你从 Web 流量分析和 XSS 漏洞测试中获得的结果。创建报告是安全测试的重要组成部分,因为它会编译你已识别的问题,并提供一种结构化的方式来查看或共享结果。

对于初学者来说,Burp Suite 报告总结了你测试会话中的漏洞或观察结果。它包括诸如问题类型、受影响的 URL 以及相关的请求/响应数据等详细信息。此文档对于跟踪安全缺陷和规划补救措施至关重要。

由于你位于 Kali Linux 容器 shell 中(打开终端时自动进入),请确保 Burp Suite 仍在运行。如果不是,请使用 burpsuite 重新启动它。

在 Burp Suite 界面中,导航到“Target”选项卡或“Issues”选项卡(取决于版本)。此部分列出了 Burp Suite 自动检测到的任何漏洞或你手动添加的问题。如果你在之前的步骤中通过将其添加到站点地图中标记了潜在的 XSS 问题,它可能会在此处显示。

如果未列出任何问题,你可以手动添加一个以供练习。转到“Proxy”选项卡,从你测试 XSS 的“HTTP history”中选择一个请求(例如,使用输入 test<xss>),右键单击它,然后选择“Report issue”或“Send to Issues”。如果可用,选择一个类型,例如“Cross-site scripting (reflected)”,添加一个简短的描述,例如“Potential XSS in input field”,然后单击“OK”。

要生成报告,请在“Issues”选项卡中单击“Report”按钮或在菜单中找到“Generate Report”。按照报告向导中的以下步骤操作:

  1. 选择格式为 HTML 以获得可读格式。
  2. 选择包含“All issues”或特定问题(如果你添加了任何问题)。
  3. 当提示输入保存位置时,将路径设置为 Kali Linux 容器内的 /root/xss_report.html
  4. 单击“Next”或“Finish”以保存报告。

生成报告后,通过在终端中键入以下命令并按 Enter 键来确认它已保存:

ls -l /root/xss_report.html

预期输出(实际输出可能有所不同):

-rw-r--r-- 1 root root [size] [date] /root/xss_report.html

此输出确认文件 xss_report.html 存在于 /root 目录中。如果该文件不存在,请重复报告生成过程,并确保指定了正确的路径。

你现在已成功创建了 Burp Suite 报告,记录了你的测试结果。这完成了实验,为你提供了使用 Kali Linux 环境中的基本工具进行 Web 安全测试的实践经验。

总结

在这个实验中,你学习了使用 Burp Suite 在 LabEx 虚拟机环境中的 Kali Linux 容器内进行 Web 应用程序安全测试的基本知识。你首先安装并启动了 Burp Suite,然后配置了 Burp Proxy 以拦截 Web 流量。通过设置 Firefox 将流量路由到代理,你捕获并分析了 HTTP/HTTPS 请求和响应。你还通过提交测试输入并检查服务器响应来测试 XSS 漏洞。最后,你生成了一份详细的报告来记录你的发现。这些步骤为你提供了使用行业标准工具识别和解决 Web 安全问题的实用技能。