使用burpsuite爆破带有验证码和随机uuid的密码的一次经验
字数 1848 2025-08-22 12:22:30

BurpSuite爆破带有验证码和随机UUID密码的实战教学

技术背景

本教程将详细介绍如何使用BurpSuite的Macro功能和custom-parameter-handler插件来爆破带有验证码和随机UUID的登录页面。这种场景下,传统的爆破方法无法直接使用,因为每次请求都需要动态获取验证码和UUID。

所需工具和环境

  • BurpSuite Professional
  • custom-parameter-handler插件(可从Burp插件商店下载)
  • Jython环境(运行插件所需)

目标场景分析

目标登录页面有以下安全机制:

  1. 每次登录需要随机UUID
  2. 需要验证码(验证码在响应包中直接返回)
  3. 登录请求和验证码请求使用JSON格式数据

解决方案概述

  1. 使用Burp的Macro功能在登录前自动获取验证码和UUID
  2. 使用custom-parameter-handler插件处理JSON格式的响应
  3. 配置Session规则将获取的值自动填充到登录请求中

详细步骤

第一步:录制验证码请求的Macro

  1. 在BurpSuite中,转到Project options > Sessions > Macros
  2. 点击Add新建宏
  3. 在Proxy历史记录中选择验证码的请求包
  4. 由于我们只需要获取响应,不需要提取值,所以不需要配置提取规则

注意:如果处理的是非JSON格式数据,可以在此处配置提取规则,但本案例需要插件处理JSON

第二步:配置Session规则

  1. 转到Project options > Sessions > Session Handling Rules
  2. 点击Add新建规则
  3. 在规则中添加Run a macro动作
  4. 选择之前创建的验证码请求宏
  5. 勾选Run macro then invoke Burp extension选项
  6. 在下拉菜单中选择custom-parameter-handler插件

第三步:配置Scope范围

  1. 在Session规则中配置Scope选项卡
  2. 设置合适的URL范围,确保规则只在目标网站生效

第四步:配置custom-parameter-handler插件

  1. 将插件日志级别设为4(在Extensions模块中可查看详细调试输出)

  2. 配置UUID替换规则:

    • 点击+新建替换规则
    • 名称:replace uuid
    • 正则表达式:"uuid":"(?P<uuid>.*?)"
    • 替换为:"uuid":"\g<uuid>"
  3. 配置验证码替换规则:

    • 点击+新建替换规则
    • 名称:replace code
    • 正则表达式:"returnCode":"(?P<code>.*?)"
    • 替换为:"returnCode":"\g<code>"
  4. 配置空格去除规则(因为验证码返回包含空格):

    • 点击+新建替换规则
    • 名称:remove space
    • 正则表达式:\s{2}
    • 替换为:空字符串

第五步:验证配置效果

  1. 发送一个登录请求
  2. 查看Logger记录,确认UUID和验证码值已自动修改
  3. 检查请求包,确认参数已正确填充

第六步:使用Intruder进行爆破

  1. 将登录请求发送到Intruder
  2. 设置攻击类型为Cluster bomb
  3. 选择用户名和密码作为攻击参数
  4. Options中设置:
    • 线程数设为1(避免验证码冲突)
    • 请求间隔设为500ms
  5. 在custom-parameter-handler插件的Options中勾选Intruder选项
  6. 开始爆破攻击

关键点总结

  1. Macro只用于获取响应:不直接用于提取JSON格式的值
  2. 插件处理JSON:custom-parameter-handler专门处理复杂格式的响应
  3. Session规则串联:将Macro和插件连接起来
  4. 验证码空格处理:需要额外规则去除验证码中的空格
  5. 爆破参数设置:低线程数和适当延迟确保稳定性

常见问题解决

  1. 插件不工作

    • 检查Jython环境是否正确安装
    • 确认日志级别设为4查看调试信息
    • 验证正则表达式是否正确匹配响应内容
  2. 值未正确替换

    • 检查Session规则的Scope是否包含目标URL
    • 验证Macro是否正确录制
    • 确认替换规则顺序正确(先获取值,再处理格式)
  3. 验证码错误

    • 确保线程数为1
    • 增加请求间隔时间
    • 检查验证码处理规则是否去除了空格

通过以上步骤,可以成功爆破带有验证码和随机UUID的登录页面,即使数据是JSON格式也能有效处理。

BurpSuite爆破带有验证码和随机UUID密码的实战教学 技术背景 本教程将详细介绍如何使用BurpSuite的Macro功能和custom-parameter-handler插件来爆破带有验证码和随机UUID的登录页面。这种场景下,传统的爆破方法无法直接使用,因为每次请求都需要动态获取验证码和UUID。 所需工具和环境 BurpSuite Professional custom-parameter-handler插件(可从Burp插件商店下载) Jython环境(运行插件所需) 目标场景分析 目标登录页面有以下安全机制: 每次登录需要随机UUID 需要验证码(验证码在响应包中直接返回) 登录请求和验证码请求使用JSON格式数据 解决方案概述 使用Burp的Macro功能在登录前自动获取验证码和UUID 使用custom-parameter-handler插件处理JSON格式的响应 配置Session规则将获取的值自动填充到登录请求中 详细步骤 第一步:录制验证码请求的Macro 在BurpSuite中,转到 Project options > Sessions > Macros 点击 Add 新建宏 在Proxy历史记录中选择验证码的请求包 由于我们只需要获取响应,不需要提取值,所以不需要配置提取规则 注意 :如果处理的是非JSON格式数据,可以在此处配置提取规则,但本案例需要插件处理JSON 第二步:配置Session规则 转到 Project options > Sessions > Session Handling Rules 点击 Add 新建规则 在规则中添加 Run a macro 动作 选择之前创建的验证码请求宏 勾选 Run macro then invoke Burp extension 选项 在下拉菜单中选择 custom-parameter-handler 插件 第三步:配置Scope范围 在Session规则中配置 Scope 选项卡 设置合适的URL范围,确保规则只在目标网站生效 第四步:配置custom-parameter-handler插件 将插件日志级别设为4(在Extensions模块中可查看详细调试输出) 配置UUID替换规则: 点击 + 新建替换规则 名称: replace uuid 正则表达式: "uuid":"(?P<uuid>.*?)" 替换为: "uuid":"\g<uuid>" 配置验证码替换规则: 点击 + 新建替换规则 名称: replace code 正则表达式: "returnCode":"(?P<code>.*?)" 替换为: "returnCode":"\g<code>" 配置空格去除规则(因为验证码返回包含空格): 点击 + 新建替换规则 名称: remove space 正则表达式: \s{2} 替换为:空字符串 第五步:验证配置效果 发送一个登录请求 查看Logger记录,确认UUID和验证码值已自动修改 检查请求包,确认参数已正确填充 第六步:使用Intruder进行爆破 将登录请求发送到Intruder 设置攻击类型为 Cluster bomb 选择用户名和密码作为攻击参数 在 Options 中设置: 线程数设为1(避免验证码冲突) 请求间隔设为500ms 在custom-parameter-handler插件的 Options 中勾选 Intruder 选项 开始爆破攻击 关键点总结 Macro只用于获取响应 :不直接用于提取JSON格式的值 插件处理JSON :custom-parameter-handler专门处理复杂格式的响应 Session规则串联 :将Macro和插件连接起来 验证码空格处理 :需要额外规则去除验证码中的空格 爆破参数设置 :低线程数和适当延迟确保稳定性 常见问题解决 插件不工作 : 检查Jython环境是否正确安装 确认日志级别设为4查看调试信息 验证正则表达式是否正确匹配响应内容 值未正确替换 : 检查Session规则的Scope是否包含目标URL 验证Macro是否正确录制 确认替换规则顺序正确(先获取值,再处理格式) 验证码错误 : 确保线程数为1 增加请求间隔时间 检查验证码处理规则是否去除了空格 通过以上步骤,可以成功爆破带有验证码和随机UUID的登录页面,即使数据是JSON格式也能有效处理。