实战案例 | 绕过计算型验证码
字数 1588 2025-08-19 12:41:46

绕过计算型验证码实战教学文档

1. 场景介绍

本教学案例针对一个已授权的违法网站后台页面,演示如何通过HTTP模糊测试工具和第三方API调用绕过加法型验证码识别,从而进行后台弱口令爆破测试。

2. 工具准备

  • TangGo测试平台(HTTP模糊测试工具)
  • HTTP抓包测试工具(内置浏览器功能)
  • 第三方验证码识别API服务

3. 测试流程详解

3.1 数据抓取阶段

  1. 访问目标网站:打开HTTP抓包测试工具的内置浏览器,访问目标网站登录页面
  2. 拦截验证码请求
    • 开启拦截开关
    • 刷新验证码图片
    • 捕获验证码请求数据包
  3. 保存验证码请求
    • 将验证码请求发送到"重放模块"
    • 命名为"验证码请求数据包"备用

3.2 验证码识别方案

由于社区版模糊测试工具无法直接识别计算型验证码,采用第三方API方案:

  1. 选择API类型:使用Web API(基于HTTP/HTTPS)
  2. API配置要求
    • username:注册账号
    • password:账号密码
    • typeid:数字选择对应模式
    • image:base64编码后的图片

3.3 登录数据包抓取

  1. 关闭拦截开关放行验证码请求
  2. 重新开启拦截
  3. 在浏览器填写任意用户名(如admin)、密码和验证码
  4. 点击登录捕获登录数据包

4. 模糊测试参数设置

4.1 基本参数标记

  1. 将登录数据发送到HTTP模糊测试工具
  2. 标记爆破参数:
    • 账号"admin"
    • 密码"123456"

4.2 变体参数设置

  1. 选择爆破模式:多字典交叉爆破模式
  2. 导入字典
    • 为变体1和变体2分别导入账号和密码字典
    • 可清除错误数据重新导入

5. 自定义流程实现验证码绕过

5.1 发包前流程设置

步骤1:获取验证码图片

  • 新建"发送HTTP请求"流程
  • 复制"验证码请求数据包"内容到请求数据块
  • 启用HTTPS开关(如为HTTPS请求)
  • 绑定结果变量为"YZM_Respons"(全局变量)

步骤2:图片编码处理

  • 新建"对数据进行处理"流程
  • 操作变量:"YZM_Respons"
  • 对象属性:"HTTP响应Body"
  • 结果绑定变量:"PNG_base64"
  • 添加处理规则:
    1. BASE64编码
    2. URL编码(防止base64中的+号被当作空格)

步骤3:调用API识别验证码

  • 新建"发送HTTP请求"流程
  • 填入API接口请求包
  • "image"字段填入"PNG_base64"变量
  • 绑定结果变量为"YZM"
  • 使用正则表达式提取识别结果:
    • 根据API返回格式提取"result"内容
    • 选择匹配的正则表达式(案例中使用倒数第五个)
    • 测试确认匹配数据正确

5.2 请求包参数设置

  1. 在登录请求包的"captch"字段插入"YZM"变量
  2. 完成所有参数设置

6. 测试执行与验证

  1. 启动测试,观察数据包交互
  2. 查看自定义流程执行顺序:
    • 执行1:提取验证码(如"29+8")
    • 执行2:数据编码处理
    • 执行3:API调用和结果提取(如"37")
  3. 确认验证码被成功计算和填充

7. 关键注意事项

  1. 编码处理顺序:必须先BASE64编码,再进行URL编码
  2. HTTPS开关:确保与实际情况一致
  3. 正则表达式选择:需根据API返回格式精确匹配
  4. 变量作用域:确保关键变量设置为全局变量
  5. 测试环境:仅限已授权网站测试

8. 技术要点总结

  1. 通过拦截和重放技术捕获验证码请求
  2. 利用第三方API服务解决特殊验证码识别问题
  3. 采用多阶段自定义流程实现复杂验证码绕过
  4. 数据编码转换确保API接口兼容性
  5. 正则表达式精确提取关键数据

9. 流程图概要

  1. 捕获验证码请求 → 获取验证码图片
  2. 图片BASE64+URL编码 → 准备API输入
  3. 调用API接口 → 获取计算结果
  4. 自动填充验证码 → 执行爆破测试

本方案成功实现了对计算型验证码的自动化绕过,为授权安全测试提供了有效方法。实际应用中需根据具体API接口和验证码形式调整处理流程。

绕过计算型验证码实战教学文档 1. 场景介绍 本教学案例针对一个已授权的违法网站后台页面,演示如何通过HTTP模糊测试工具和第三方API调用绕过加法型验证码识别,从而进行后台弱口令爆破测试。 2. 工具准备 TangGo测试平台(HTTP模糊测试工具) HTTP抓包测试工具(内置浏览器功能) 第三方验证码识别API服务 3. 测试流程详解 3.1 数据抓取阶段 访问目标网站 :打开HTTP抓包测试工具的内置浏览器,访问目标网站登录页面 拦截验证码请求 : 开启拦截开关 刷新验证码图片 捕获验证码请求数据包 保存验证码请求 : 将验证码请求发送到"重放模块" 命名为"验证码请求数据包"备用 3.2 验证码识别方案 由于社区版模糊测试工具无法直接识别计算型验证码,采用第三方API方案: 选择API类型 :使用Web API(基于HTTP/HTTPS) API配置要求 : username:注册账号 password:账号密码 typeid:数字选择对应模式 image:base64编码后的图片 3.3 登录数据包抓取 关闭拦截开关放行验证码请求 重新开启拦截 在浏览器填写任意用户名(如admin)、密码和验证码 点击登录捕获登录数据包 4. 模糊测试参数设置 4.1 基本参数标记 将登录数据发送到HTTP模糊测试工具 标记爆破参数: 账号"admin" 密码"123456" 4.2 变体参数设置 选择爆破模式 :多字典交叉爆破模式 导入字典 : 为变体1和变体2分别导入账号和密码字典 可清除错误数据重新导入 5. 自定义流程实现验证码绕过 5.1 发包前流程设置 步骤1:获取验证码图片 新建"发送HTTP请求"流程 复制"验证码请求数据包"内容到请求数据块 启用HTTPS开关(如为HTTPS请求) 绑定结果变量为"YZM_ Respons"(全局变量) 步骤2:图片编码处理 新建"对数据进行处理"流程 操作变量:"YZM_ Respons" 对象属性:"HTTP响应Body" 结果绑定变量:"PNG_ base64" 添加处理规则: BASE64编码 URL编码(防止base64中的+号被当作空格) 步骤3:调用API识别验证码 新建"发送HTTP请求"流程 填入API接口请求包 "image"字段填入"PNG_ base64"变量 绑定结果变量为"YZM" 使用正则表达式提取识别结果: 根据API返回格式提取"result"内容 选择匹配的正则表达式(案例中使用倒数第五个) 测试确认匹配数据正确 5.2 请求包参数设置 在登录请求包的"captch"字段插入"YZM"变量 完成所有参数设置 6. 测试执行与验证 启动测试,观察数据包交互 查看自定义流程执行顺序: 执行1:提取验证码(如"29+8") 执行2:数据编码处理 执行3:API调用和结果提取(如"37") 确认验证码被成功计算和填充 7. 关键注意事项 编码处理顺序 :必须先BASE64编码,再进行URL编码 HTTPS开关 :确保与实际情况一致 正则表达式选择 :需根据API返回格式精确匹配 变量作用域 :确保关键变量设置为全局变量 测试环境 :仅限已授权网站测试 8. 技术要点总结 通过拦截和重放技术捕获验证码请求 利用第三方API服务解决特殊验证码识别问题 采用多阶段自定义流程实现复杂验证码绕过 数据编码转换确保API接口兼容性 正则表达式精确提取关键数据 9. 流程图概要 捕获验证码请求 → 获取验证码图片 图片BASE64+URL编码 → 准备API输入 调用API接口 → 获取计算结果 自动填充验证码 → 执行爆破测试 本方案成功实现了对计算型验证码的自动化绕过,为授权安全测试提供了有效方法。实际应用中需根据具体API接口和验证码形式调整处理流程。