在 Burp Intruder 中使用 Cluster Bomb 攻击

Beginner
立即练习

引言

Burp Intruder 是 Burp Suite 中一个强大的工具,用于自动化针对 Web 应用程序的定制化攻击。它高度可配置,可用于执行各种任务,从简单的暴力破解猜测到复杂的漏洞扫描。

Intruder 的一个关键特性是其不同的攻击类型。“Cluster Bomb”攻击类型在攻击需要组合测试多个不同输入时特别有用。它使用多个 payload 集合,每个集合对应一个定义的 position,并遍历所有可能的 payload 组合。这非常适合诸如暴力破解登录表单之类的场景,当你有一个潜在用户名列表和一个单独的潜在密码列表时。

在本实验中,你将学习如何配置和执行 Cluster Bomb 攻击,以在示例登录页面上发现有效的用户名和密码组合。

发送登录请求到 Intruder

在此步骤中,你将启动 Burp Suite 和一个 Web 浏览器,然后捕获一个登录请求并将其发送到 Burp Intruder 进行进一步分析。

首先,你需要启动 Burp Suite。

  1. 点击桌面左上角的 Application 菜单。
  2. 导航至 Other -> Burp Suite Community Edition

Burp Suite 将会启动。选择 "Temporary project" 并点击 "Next",然后点击 "Start Burp"。

接下来,打开 Firefox Web 浏览器并将其配置为使用 Burp Suite 作为代理。

  1. 点击 Application 菜单 -> Internet -> Firefox Web Browser
  2. 在 Firefox 中,前往 Settings -> General -> Network Settings 并点击 Settings...
  3. 选择 Manual proxy configuration
  4. HTTP Proxy 设置为 127.0.0.1,将 Port 设置为 8080
  5. 勾选 Also use this proxy for HTTPS 复选框。
  6. 点击 OK

现在,导航到目标登录页面。在 Firefox 地址栏中输入:

http://127.0.0.1:5000/login

你应该会看到一个简单的登录表单。在 Burp Suite 中,转到 Proxy 选项卡,然后是 Intercept 子选项卡,并确保拦截已开启(按钮应显示 "Intercept is on")。

回到 Firefox,在用户名处输入 test,在密码处输入 test,然后点击 Login 按钮。请求将被捕获在 Burp 的 Proxy -> Intercept 选项卡中。

现在,将此捕获的请求发送到 Intruder。

  1. 在请求面板中的任意位置右键单击。
  2. 从上下文菜单中选择 Send to Intruder
  3. 你将看到 Intruder 选项卡高亮显示,表明请求已发送。

你现在可以点击 Proxy -> Intercept 选项卡中的 "Intercept is on" 按钮来关闭拦截。

为用户名和密码字段添加 Payload 标记

在此步骤中,你将配置 Burp Intruder 中的 payload 位置。Payload 位置告诉 Intruder 在攻击期间将 payload 放置在哪里。对于登录表单上的 Cluster Bomb 攻击,我们需要两个位置:一个用于用户名,一个用于密码。

在 Burp Suite 中导航到 Intruder 选项卡。你将看到四个子选项卡:TargetPositionsPayloadsOptions。点击 Positions 选项卡。

你从 Proxy 发送的请求会显示在这里。Burp Intruder 会自动尝试猜测 payload 应该放在哪里,并添加 payload 标记(§...§)。我们将清除这些标记,并设置我们自己的标记以获得更好的控制。

  1. 点击窗口右侧的 Clear § 按钮。这将移除所有自动添加的 payload 标记。
  2. 在请求编辑器中,找到带有 username=test 参数的行。
  3. 仔细只高亮显示值 test
  4. 点击 Add § 按钮。该行现在应显示为 username=§test§
  5. 接下来,找到带有 password=test 参数的行。
  6. 仔细只高亮显示值 test
  7. 再次点击 Add § 按钮。该行现在应显示为 password=§test§

你现在已经定义了两个 payload 位置。Burp Intruder 将在攻击期间将数据替换到这些标记的位置。

将攻击类型设置为 'Cluster Bomb'

在此步骤中,你将为我们的目标选择合适的攻击类型。Burp Intruder 提供四种攻击类型,每种都有不同的用途:

  • Sniper: 使用单个 payload 集,一次针对一个位置。
  • Battering Ram: 使用单个 payload 集,同时将相同的 payload 放置在所有位置。
  • Pitchfork: 使用多个 payload 集,将每个集中的一个 payload 放置到相应的位置。
  • Cluster Bomb: 使用多个 payload 集,并尝试所有 payload 的组合。

在我们的场景中,我们希望测试一个列表中的每个可能的用户名与另一个列表中的每个可能的密码。Cluster Bomb 攻击类型非常适合此目的。

Intruder -> Positions 选项卡中,找到屏幕顶部的 Attack type 下拉菜单。

  1. 点击下拉菜单。
  2. 从列表中选择 Cluster Bomb

请注意,选择 Cluster Bomb 后,Payloads 选项卡现在允许你配置多个 payload 集,对应于你在上一步中定义的 payload 标记数量。在我们的例子中,我们将配置两个 payload 集。

配置两个 Payload 列表(用户名和密码)

在此步骤中,你将提供 Intruder 将用于攻击的潜在用户名和密码列表。

导航到 Intruder -> Payloads 选项卡。

由于你选择了 Cluster Bomb 攻击类型并定义了两个 payload 位置,现在你可以配置两个独立的 payload 列表。

首先,配置用户名列表(Payload set 1):

  1. 确保 Payload set 下拉菜单设置为 1。这对应于你添加的第一个 § 标记(用户名)。
  2. Payload Options 下,点击 Add 按钮。
  3. 输入以下潜在用户名,每行一个:
    • user
    • guest
    • admin
    • root

接下来,配置密码列表(Payload set 2):

  1. Payload set 下拉菜单从 1 更改为 2。这对应于第二个 § 标记(密码)。
  2. Payload Options 下,点击 Add 按钮。
  3. 输入以下潜在密码,每行一个:
    • password
    • 123456
    • qwerty
    • password123

你现在已经配置了 Intruder 来测试这两个列表的所有组合。它将总共发送 4(用户名)x 4(密码)= 16 个请求。

运行攻击以测试 Payload 的所有组合

在此步骤中,你将启动攻击并分析结果以找到正确的登录凭据。

  1. Intruder 选项卡的右上角,点击 Start attack 按钮。
  2. 一个标题为“Intruder attack”的新窗口将打开,攻击将立即开始。

这个新窗口显示一个结果表。你将看到正在发送的请求,并且表格将填充结果。需要关注的关键列是:

  • Payload 1: 该请求使用的用户名。
  • Payload 2: 该请求使用的密码。
  • Status: 响应的 HTTP 状态码(例如,200 表示 OK,401 表示 Unauthorized)。
  • Length: 响应体的字节大小。

成功的登录很可能与不成功的登录产生不同的响应。这种差异可以在 Status 码或 Length 中看到。

浏览结果。你应该会注意到一个请求与其他请求相比,在 LengthStatus 上有所不同。大多数尝试将导致 401 Unauthorized 状态,而正确的尝试将是 200 OK。成功登录的响应 Length 也会不同。

为了轻松找到唯一的响应,你可以点击 StatusLength 列标题来对结果进行排序。

成功的请求将具有以下 Payload 组合:

  • Payload 1: admin
  • Payload 2: password123

你可以在表格中点击此成功的请求,以在下方的面板中查看完整的 RequestResponse。成功登录的响应将包含文本“Login Successful!”。

恭喜你,你已成功使用 Cluster Bomb 攻击找到了有效的凭据!

总结

在本实验中,你学习了如何使用 Burp Intruder 执行 Cluster Bomb 攻击。

你首先使用 Burp 的代理拦截登录请求,并将其发送到 Intruder。然后,你为用户名和密码字段手动配置了两个不同的 payload 位置。在选择 Cluster Bomb 攻击类型后,你配置了两个独立的 payload 列表——一个用于用户名,一个用于密码。

最后,你启动了攻击并分析了结果表,通过查找异常的响应状态码和长度来识别成功的登录组合。这个实践练习展示了 Cluster Bomb 攻击类型在测试具有多个输入的身份验证机制方面的强大功能和实用性。