在 Burp Repeater 中操作和重发请求

Beginner
立即练习

引言

欢迎来到本关于使用 Burp Repeater 的实验。Burp Repeater 是 Burp Suite 中一个简单而强大的工具,用于手动修改和重新发送单个 HTTP 请求,并分析应用程序的响应。它是任何 Web 应用程序安全测试人员的基础工具,通过观察服务器如何响应不同的输入,让你能够探测漏洞。

在本实验中,你将学习 Burp Repeater 的核心工作流程。你将首先捕获一个 Web 应用程序的标准请求,将其发送到 Repeater,修改其参数,然后将其重新发送到服务器。最后,你将分析服务器对你修改后请求的响应,并学习如何导航请求历史。

在 Repeater 标签页中选择一个请求

在本步骤中,你将捕获一个来自示例 Web 应用程序的请求,并将其发送到 Burp Repeater 进行操作。实验环境已为你启动了一个 Web 应用程序和 Burp Suite。浏览器已配置为通过 Burp Suite 代理流量。

首先,让我们生成一些流量。

  1. 从桌面打开 Web 浏览器。
  2. 在地址栏输入 http://127.0.0.1:5000 导航到目标应用程序。
  3. 你将看到一个简单的登录表单。保留默认值 (userpass),然后点击 Submit 按钮。

现在,让我们在 Burp Suite 中找到这个请求。

  1. 切换到 Burp Suite 窗口。
  2. 转到 Proxy 标签页,然后点击 HTTP history 子标签页。你将看到浏览器发出的请求列表。
  3. 查找一个发送到 /login 端点的 POST 请求。它应该在列表的顶部附近。点击它以在下方的面板中查看其详细信息。
  4. 在请求面板的任意位置右键单击,然后从上下文菜单中选择 Send to Repeater。你也可以使用快捷键 Ctrl+R

一个新的标签页将出现,并在 Repeater 工具中闪烁橙色。点击 Repeater 标签页以查看你刚刚发送的请求。

修改 Header 或参数值

在本步骤中,你将修改发送到 Repeater 标签页的请求。Repeater 的用户界面分为两个主要部分:左侧的请求面板和右侧的响应面板。目前,响应面板是空的,因为我们还没有从 Repeater 发送请求。

让我们关注左侧的请求面板。在发送请求之前,你可以在这里编辑请求的任何部分。这包括请求行、请求头和请求体。

  1. 查看请求面板的底部。你将看到 POST 请求的请求体,其中包含表单数据:username=user&password=pass
  2. 让我们测试一下是否可以以不同的用户身份登录。将 username 参数的值从 user 更改为 admin。该行现在应该看起来像这样:username=admin&password=pass
  3. 你也可以修改请求头。例如,找到 User-Agent 请求头并将其值更改为自定义内容,例如 My-Custom-Browser/1.0

左侧面板中修改后的请求现在已准备好发送。

点击 'Send' 按钮发送修改后的请求

在本步骤中,你将把修改后的 HTTP 请求发送到服务器。在左侧面板编辑完请求后,下一步就是传输它。

在请求面板的顶部,你会找到一个 Send 按钮。这个按钮用于发送面板中显示的当前请求。

  1. 确保你的请求已按上一步所述进行修改(例如,username 设置为 admin)。
  2. 点击 Send 按钮。

Burp Repeater 现在会将这个修改后的请求发送到目标服务器 127.0.0.1:5000。稍后,服务器的响应将出现在右侧的响应面板中。

分析服务器响应

在本步骤中,你将分析服务器对你修改后请求的响应。在你点击 Send 后,右侧的响应面板会填充服务器返回的数据。

  1. 检查响应面板。你将看到完整的 HTTP 响应,包括状态行(例如 HTTP/1.0 200 OK)、响应头和响应体。
  2. 查看响应体。由于我们的测试应用程序会在其输出中反映用户名,你应该会看到消息:Login attempt for user: 'admin' failed. Please try again.。这证实了服务器处理了我们修改后的输入。
  3. 在响应体上方,有几个视图选项:PrettyRawHexRender
    • Pretty:显示格式化的响应版本,这对于 HTML 和 JSON 非常有用。
    • Raw:显示从服务器接收到的确切字节。
    • Render:尝试将响应渲染成网页浏览器的方式。点击 Render 可以看到登录页面的视觉表示,其中包含失败消息。

分析响应是一项关键技能。通过发送不同的 payload 并观察响应,你可以了解应用程序的行为并识别潜在的漏洞。

使用历史记录箭头在已发送的请求之间导航

在本步骤中,你将学习如何在 Repeater 标签页中使用历史记录导航功能。Repeater 会保存当前标签页中你发送的所有请求的历史记录,这对于比较对略有不同的请求的响应非常有用。

Send 按钮旁边,你会看到一个数字(当前为 1)以及后退/前进箭头(<>)。这些允许你在请求历史记录中逐项查看。

  1. 让我们创建另一个历史记录条目。在请求面板中,将 username 改回 user
  2. 再次点击 Send。你将看到响应更新,以反映对 user 的登录尝试。Send 按钮旁边的数字现在显示为 2
  3. 现在,点击后退箭头(<)。请求和响应面板将更新,显示你的第一个请求(username=admin)及其相应的响应。数字将变回 1
  4. 点击前进箭头(>)返回到第二个请求(username=user)。

此功能允许你快速测试请求的变体并比较结果,而无需手动重新输入更改或管理多个 Repeater 标签页。

总结

在本实验中,你学习了 Burp Suite 的核心组件 Burp Repeater 的基本操作。

你成功地从一个 Web 应用程序捕获了一个 HTTP 请求并将其发送到 Repeater。然后,你练习了修改请求的参数和头信息,将修改后的请求重新发送给服务器,并分析了返回的响应。最后,你学习了如何使用历史记录导航来高效地切换你发送的不同请求。

掌握 Burp Repeater 是成为一名熟练的手动 Web 应用程序安全测试人员的关键一步,因为它提供了探测各种漏洞所需的控制力。