在 Burp Intruder 中使用 Pitchfork 攻击

Beginner
立即练习

引言

Burp Suite 是一个强大的 Web 应用安全测试平台。它最灵活的工具之一是 Burp Intruder,它允许你针对 Web 应用自动化定制攻击。Intruder 有几种攻击类型,每种都针对不同的测试场景。

Pitchfork 攻击类型用于当你需要同时使用不同但相关的 payload 测试多个参数时。它为每个标记的位置使用一个独立的 payload 列表。在攻击过程中,Intruder 会将第一个列表的第一个 payload 与第二个列表的第一个 payload 配对,然后是第二个与第二个,以此类推。这非常适合测试已知用户名和密码对列表等场景。

在本实验中,你将学习如何在 Burp Intruder 中配置和执行 Pitchfork 攻击,以针对一个简单的登录表单。

将带有两个参数的请求发送到 Intruder

在此步骤中,你将启动 Burp Suite,捕获一个登录请求,并将其发送到 Intruder 工具进行修改。实验环境已经为你启动了一个简单的 Web 应用进行测试。

首先,从桌面打开一个终端并启动 Burp Suite。你通常可以在应用程序菜单中找到它,或者从命令行启动。在本实验中,我们将从终端启动它。

burpsuite

在启动向导中,选择 "Temporary project"(临时项目)并点击 "Next"(下一步),然后点击 "Start Burp"(启动 Burp)。

Burp Suite 打开后,转到 Proxy(代理)选项卡,然后是 Intercept(拦截)子选项卡。点击 "Open Browser"(打开浏览器)按钮。这将启动一个 Chromium 浏览器,该浏览器已预先配置为与 Burp 的代理配合使用。

在 Burp 浏览器中,通过输入以下 URL 导航到目标应用程序:

http://127.0.0.1:8000

你将看到一个简单的登录表单。回到 Burp Suite 窗口,通过点击 "Intercept is on"(拦截已开启)按钮将其关闭,使其变为 "Intercept is off"(拦截已关闭)。这样就可以让请求自由地流向应用程序。

现在,回到浏览器。在用户名处输入 test,在密码处输入 test,然后点击 "Submit"(提交)。

回到 Burp Suite 窗口,导航到 Proxy > HTTP history(HTTP 历史记录)选项卡。你应该在历史记录列表中看到一个 POST /login 请求。右键单击此请求,然后选择 "Send to Intruder"(发送到 Intruder)。

此操作会将请求的副本发送到 Intruder 工具,你可以在那里配置攻击。你应该会看到 Intruder 选项卡被高亮显示。

为两个参数添加 Payload 标记

在此步骤中,你将定义 Intruder 应将 payload 放置在请求中的位置。对于 Pitchfork 攻击,你需要标记要 fuzz 的每个参数值。

导航到 Intruder 选项卡,然后是 Positions(位置)子选项卡。你将看到捕获的 POST /login 请求。

Burp Intruder 通常会自动识别潜在的 payload 位置,并用 § 符号标记它们。在本实验中,我们希望精确控制位置。首先,点击右侧的 Clear §(清除 §)按钮,移除任何默认标记。

窗口底部的请求正文如下所示:

username=test&password=test

我们希望将 payload 插入到 usernamepassword 参数的值中。

  1. 在请求编辑器中,高亮显示 username 参数的值 test
  2. 点击右侧的 Add §(添加 §)按钮。参数现在应该显示为 username=§test§
  3. 接下来,高亮显示 password 参数的值 test
  4. 再次点击 Add §(添加 §)按钮。参数现在应该显示为 password=§test§

你的请求正文现在应该有两个标记的位置:

username=§test§&password=§test§

这些标记精确地告诉 Intruder 在何处放置来自相应 payload 集合的 payload。

将攻击类型设置为“Pitchfork”

在此步骤中,你将选择 Pitchfork 攻击类型。这是启用我们想要测试的配对 payload 注入行为的关键设置。

Intruder > Positions(位置)选项卡中,找到屏幕顶部的“Attack type”(攻击类型)下拉菜单。它默认可能设置为 Sniper

点击下拉菜单。你将看到四个选项:

  • Sniper:使用单个 payload 集合,并逐一迭代每个位置。
  • Battering ram:使用单个 payload 集合,并将相同的 payload 一次性放置到所有位置。
  • Pitchfork:使用多个 payload 集合。它将集合 1 中的第一个 payload 与集合 2 中的第一个 payload 配对,第二个与第二个配对,依此类推。
  • Cluster bomb:使用多个 payload 集合,并测试所有可能的 payload 组合。

对于我们测试用户名/密码配对的场景,Pitchfork 是正确的选择。从列表中选择 Pitchfork

选择 Pitchfork 后,你会注意到在此屏幕上的界面变化不大,但 Burp 现在已准备好处理与你在上一步设置的两个 payload 标记相对应的两个独立的 payload 列表。

在 Payloads 选项卡中配置两个独立的 Payload 列表

在此步骤中,你将配置 Pitchfork 攻击将使用的两个 payload 列表。第一个列表将包含用户名,第二个列表将包含相应的密码。

导航到 Intruder 选项卡内的 Payloads(Payloads)子选项卡。

因为你选择了 Pitchfork 攻击类型并设置了两个 payload 位置,你将看到一个“Payload set”(Payload 集合)下拉菜单。这允许你独立配置每个 payload 列表。

配置 Payload Set 1(用户名):

  1. 确保“Payload set”(Payload 集合)下拉菜单设置为 1
  2. “Payload type”(Payload 类型)应为“Simple list”(简单列表)。
  3. 在下方的“Payload Options”(Payload 选项)部分,点击 Clear(清除)按钮移除任何默认项。
  4. 点击 Add(添加)按钮,逐一输入以下用户名:
    • user
    • guest
    • admin
    • test

配置 Payload Set 2(密码):

  1. 现在,从“Payload set”(Payload 集合)下拉菜单中选择 2
  2. 同样,确保“Payload type”(Payload 类型)为“Simple list”(简单列表)。
  3. 点击 Clear(清除)按钮清空列表。
  4. 点击 Add(添加)按钮,输入以下密码,这些密码与第一个列表中的用户名相对应:
    • userpass
    • guest
    • password123
    • test

你现在已经配置了两个不同的 payload 列表。Pitchfork 攻击将按顺序配对它们:(user, userpass)、(guest, guest)、(admin, password123) 和 (test, test)。请求总数将是 4,即列表的大小。

运行攻击并观察配对的 Payload 注入

在最后一步,你将启动攻击并分析结果,以查看 Pitchfork 攻击的实际效果。

在配置好攻击类型和 payloads 后,你就可以开始了。在 Intruder 选项卡的右上角,点击“Start attack”(开始攻击)按钮。

一个新的“Intruder attack (1)”窗口将打开,实时显示结果。观察结果表格。你将看到“Payload 1”和“Payload 2”列。

注意 payloads 是如何按照你配置的方式进行配对的:

  • 请求 1 使用 useruserpass
  • 请求 2 使用 guestguest
  • 请求 3 使用 adminpassword123
  • 请求 4 使用 testtest

现在,查看“Status”(状态)和“Length”(长度)列。大多数请求可能具有相同的状态码(例如,200)和响应长度,这表明登录尝试失败。然而,有一个请求应该会脱颖而出。使用 payload 配对 adminpassword123 的请求是正确的凭据集。你应该会看到此请求有不同的响应长度,表明服务器响应不同(例如,“Login successful!”消息)。

预期结果示例:

Request Payload 1 Payload 2 Status Length
1 user userpass 200 450
2 guest guest 200 450
3 admin password123 200 452
4 test test 200 450

通过观察这种差异,你已成功使用 Pitchfork 攻击识别出有效的凭据。你现在可以关闭攻击窗口。

总结

在本实验中,你已成功使用 Burp Intruder 配置并执行了 Pitchfork 攻击。

你学会了如何:

  • 使用 Burp Proxy 拦截 Web 请求并将其发送到 Intruder。
  • 手动为多个参数位置设置 payload 标记。
  • 选择 Pitchfork 攻击类型,该类型专为相关的多参数模糊测试而设计。
  • 为用户名和密码参数配置两个独立且相互对应的 payload 列表。
  • 启动攻击并分析结果以识别异常,通过观察配对的 payload 注入成功找到正确的登录凭据。

Pitchfork 攻击是一种有价值的技术,用于测试多个参数中的数据相关联的场景,例如用户名和密码,或任何其他配对数据集。