在 Burp Proxy 中拦截和转发 HTTP 流量

Beginner
立即练习

引言

Burp Suite 是一个强大的平台,用于对 Web 应用程序进行安全测试。其最基础的工具之一是 Burp Proxy,它允许你拦截、检查和修改浏览器与 Web 服务器之间的流量。

在本实验中,你将学习使用 Burp Proxy 的基本工作流程。你将启用拦截模式,从 Web 浏览器发起请求,在 Burp Suite 中查看捕获的 HTTP 请求,然后将其转发到目标服务器。这项技能是使用 Burp Suite 进行几乎所有 Web 应用程序测试任务的基础。实验环境已为你准备好 Burp Suite 和一个预配置的浏览器。

在 Proxy > Intercept 选项卡中启用拦截模式

在此步骤中,你将启动 Burp Suite 并启用拦截功能,这是捕获 Web 流量的第一步。

首先,启动 Burp Suite 应用程序。你可以在桌面上找到其图标。

  1. 双击桌面上的 Burp Suite Community Edition 图标。
  2. 可能会出现一个标题为“Project”的对话框。选择 Temporary project,然后点击 Next
  3. 可能会出现另一个标题为“Burp configuration”的对话框。选择 Use Burp defaults,然后点击 Start Burp

Burp Suite 加载完成后,你需要导航到 Proxy 工具并启用拦截。

  1. 点击窗口顶部的 Proxy 选项卡。
  2. 在 Proxy 选项卡中,确保你位于 Intercept 子选项卡。
  3. 你会看到一个显示 Intercept is off 的按钮。点击此按钮以启用拦截。

按钮的文本将变为 Intercept is on,并且会显示为按下状态。这表明 Burp Proxy 现在已准备好捕获由已配置浏览器发出的任何请求。

在浏览器中发起请求

现在 Burp Suite 中的拦截已启用,你将从 Web 浏览器发起一个请求。Burp Proxy 将在请求到达服务器之前捕获它。本实验环境中的浏览器已配置为通过 Burp Proxy 发送其流量。

  1. 打开 Firefox Web 浏览器。你可以在桌面上或应用程序面板中找到其图标。
  2. 在浏览器顶部的地址栏中,输入以下 URL 并按 Enter
http://127.0.0.1:8000

在你按下 Enter 后,你会注意到浏览器标签显示一个加载图标,但页面并未加载。这是预期行为。请求已从浏览器发出,但现在“卡住”在 Burp Proxy 中,等待你进行检查和转发。

在 Burp Suite 中查看被拦截的请求

在此步骤中,你将切换回 Burp Suite,查看你刚刚从浏览器发起的 HTTP 请求。

返回 Burp Suite 窗口。之前为空的 Proxy > Intercept 选项卡现在包含了你的浏览器发送的完整 HTTP 请求。

你将看到原始请求文本,其内容大致如下:

GET / HTTP/1.1
Host: 127.0.0.1:8000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

花点时间检查请求的各个部分:

  • 请求行 (Request Line)GET / HTTP/1.1 显示了方法、路径和 HTTP 版本。
  • 请求头 (Headers):像 HostUser-Agent 这样的行向服务器提供了关于请求和发起客户端的附加信息。
  • 请求体 (Body):对于像这样的 GET 请求,请求体是空的。

此视图对于理解和操作 Web 应用程序的工作方式至关重要。

点击“Forward”按钮将请求发送到服务器

检查完请求后,下一步是允许它继续发送到其目标目的地,即我们的本地 Web 服务器。

在 Burp Suite 的 Proxy > Intercept 选项卡中,你将在请求面板的顶部看到几个按钮:ForwardDropAction 等。

  1. 点击 Forward 按钮。

点击 Forward 后,请求将从拦截视图中消失。Burp Suite 已将请求发送到 127.0.0.1:8000 上的服务器。

现在,切换回你的 Firefox 浏览器。页面现在应该会加载,你将看到文本“Welcome to the LabEx Test Page!”。这证实了请求已成功转发到服务器,并且服务器的响应已发送回浏览器并由浏览器渲染。

关闭拦截模式以允许流量自由流动

最后,你将学习如何关闭拦截模式。当你没有主动检查流量时,关闭拦截至关重要;否则,你所有的浏览都将被阻止。

  1. 返回 Burp Suite 窗口,并确保你位于 Proxy > Intercept 选项卡。
  2. 点击 Intercept is on 按钮。

按钮的文本将变回 Intercept is off,并且它将不再显示为被按下状态。现在,Burp Proxy 将允许所有流量通过,而不会停止进行检查。

为了确认这一点,返回 Firefox 浏览器并刷新页面(你可以按 F5 或点击重新加载按钮)。页面将立即重新加载,没有任何延迟,因为请求不再被 Burp Suite 阻止。

总结

在本实验中,你已成功掌握了使用 Burp Proxy 拦截和转发 HTTP 流量的基本工作流程。

你练习了以下关键技能:

  • Proxy > Intercept 选项卡中启用和禁用拦截模式。
  • 捕获浏览器在进行过程中发出的实时 HTTP 请求。
  • 查看被拦截请求的原始内容以理解其结构。
  • 将请求转发到服务器以完成通信。

这项基本技能是更高级的 Web 安全测试技术的基础,例如修改请求和响应以测试漏洞。