引言
欢迎来到本关于使用 Burp Repeater 的实验。Burp Repeater 是 Burp Suite 中一个简单而强大的工具,用于手动修改和重新发送单个 HTTP 请求,并分析应用程序的响应。它是任何 Web 应用程序安全测试人员的基础工具,通过观察服务器如何响应不同的输入,让你能够探测漏洞。
在本实验中,你将学习 Burp Repeater 的核心工作流程。你将首先捕获一个 Web 应用程序的标准请求,将其发送到 Repeater,修改其参数,然后将其重新发送到服务器。最后,你将分析服务器对你修改后请求的响应,并学习如何导航请求历史。
在 Repeater 标签页中选择一个请求
在本步骤中,你将捕获一个来自示例 Web 应用程序的请求,并将其发送到 Burp Repeater 进行操作。实验环境已为你启动了一个 Web 应用程序和 Burp Suite。浏览器已配置为通过 Burp Suite 代理流量。
首先,让我们生成一些流量。
- 从桌面打开 Web 浏览器。
- 在地址栏输入
http://127.0.0.1:5000导航到目标应用程序。 - 你将看到一个简单的登录表单。保留默认值 (
user和pass),然后点击Submit按钮。
现在,让我们在 Burp Suite 中找到这个请求。
- 切换到 Burp Suite 窗口。
- 转到
Proxy标签页,然后点击HTTP history子标签页。你将看到浏览器发出的请求列表。 - 查找一个发送到
/login端点的POST请求。它应该在列表的顶部附近。点击它以在下方的面板中查看其详细信息。 - 在请求面板的任意位置右键单击,然后从上下文菜单中选择
Send to Repeater。你也可以使用快捷键Ctrl+R。
一个新的标签页将出现,并在 Repeater 工具中闪烁橙色。点击 Repeater 标签页以查看你刚刚发送的请求。
修改 Header 或参数值
在本步骤中,你将修改发送到 Repeater 标签页的请求。Repeater 的用户界面分为两个主要部分:左侧的请求面板和右侧的响应面板。目前,响应面板是空的,因为我们还没有从 Repeater 发送请求。
让我们关注左侧的请求面板。在发送请求之前,你可以在这里编辑请求的任何部分。这包括请求行、请求头和请求体。
- 查看请求面板的底部。你将看到
POST请求的请求体,其中包含表单数据:username=user&password=pass。 - 让我们测试一下是否可以以不同的用户身份登录。将
username参数的值从user更改为admin。该行现在应该看起来像这样:username=admin&password=pass。 - 你也可以修改请求头。例如,找到
User-Agent请求头并将其值更改为自定义内容,例如My-Custom-Browser/1.0。
左侧面板中修改后的请求现在已准备好发送。
点击 'Send' 按钮发送修改后的请求
在本步骤中,你将把修改后的 HTTP 请求发送到服务器。在左侧面板编辑完请求后,下一步就是传输它。
在请求面板的顶部,你会找到一个 Send 按钮。这个按钮用于发送面板中显示的当前请求。
- 确保你的请求已按上一步所述进行修改(例如,
username设置为admin)。 - 点击
Send按钮。
Burp Repeater 现在会将这个修改后的请求发送到目标服务器 127.0.0.1:5000。稍后,服务器的响应将出现在右侧的响应面板中。
分析服务器响应
在本步骤中,你将分析服务器对你修改后请求的响应。在你点击 Send 后,右侧的响应面板会填充服务器返回的数据。
- 检查响应面板。你将看到完整的 HTTP 响应,包括状态行(例如
HTTP/1.0 200 OK)、响应头和响应体。 - 查看响应体。由于我们的测试应用程序会在其输出中反映用户名,你应该会看到消息:
Login attempt for user: 'admin' failed. Please try again.。这证实了服务器处理了我们修改后的输入。 - 在响应体上方,有几个视图选项:
Pretty、Raw、Hex和Render。Pretty:显示格式化的响应版本,这对于 HTML 和 JSON 非常有用。Raw:显示从服务器接收到的确切字节。Render:尝试将响应渲染成网页浏览器的方式。点击Render可以看到登录页面的视觉表示,其中包含失败消息。
分析响应是一项关键技能。通过发送不同的 payload 并观察响应,你可以了解应用程序的行为并识别潜在的漏洞。
使用历史记录箭头在已发送的请求之间导航
在本步骤中,你将学习如何在 Repeater 标签页中使用历史记录导航功能。Repeater 会保存当前标签页中你发送的所有请求的历史记录,这对于比较对略有不同的请求的响应非常有用。
在 Send 按钮旁边,你会看到一个数字(当前为 1)以及后退/前进箭头(< 和 >)。这些允许你在请求历史记录中逐项查看。
- 让我们创建另一个历史记录条目。在请求面板中,将
username改回user。 - 再次点击
Send。你将看到响应更新,以反映对user的登录尝试。Send按钮旁边的数字现在显示为2。 - 现在,点击后退箭头(
<)。请求和响应面板将更新,显示你的第一个请求(username=admin)及其相应的响应。数字将变回1。 - 点击前进箭头(
>)返回到第二个请求(username=user)。
此功能允许你快速测试请求的变体并比较结果,而无需手动重新输入更改或管理多个 Repeater 标签页。
总结
在本实验中,你学习了 Burp Suite 的核心组件 Burp Repeater 的基本操作。
你成功地从一个 Web 应用程序捕获了一个 HTTP 请求并将其发送到 Repeater。然后,你练习了修改请求的参数和头信息,将修改后的请求重新发送给服务器,并分析了返回的响应。最后,你学习了如何使用历史记录导航来高效地切换你发送的不同请求。
掌握 Burp Repeater 是成为一名熟练的手动 Web 应用程序安全测试人员的关键一步,因为它提供了探测各种漏洞所需的控制力。
