传统渗透测试爆破有困难?
字数 2062 2025-08-18 17:33:13

基于无头浏览器的Web登录页面爆破插件使用指南

1. 背景与原理

1.1 传统爆破方法的局限性

  • 现代网站通常不会直接传输明文用户名密码
  • POST数据往往经过加密处理,难以直接构建请求
  • 需要从混淆的JS文件中逆向加密算法,工作量大
  • 特殊校验参数增加手动爆破的复杂度

1.2 无头浏览器爆破的优势

  • 使用go-rod库模拟真实浏览器操作
  • 自动渲染页面并模拟用户输入行为
  • 绕过前端加密逻辑,直接操作DOM元素
  • 自动处理各种前端框架(如Vue、React)的渲染问题

2. 插件功能概述

2.1 核心功能

  • 自动分析目标页面,识别输入框和提交按钮
  • 通过关键词分析确定用户名/密码输入框位置
  • 支持验证码识别(需配置外部接口)
  • 自动判断登录成功条件(URL变化或页面结构变化)

2.2 工作流程

  1. 访问目标URL并分析页面结构
  2. 识别关键元素(用户名框、密码框、提交按钮等)
  3. 遍历用户名密码组合进行自动输入
  4. 监控页面变化判断登录结果
  5. 记录爆破过程和结果

3. 详细参数配置

3.1 基本参数

参数名 类型 说明 示例
用户名列表 字符串 逗号分隔的用户名 admin,test,guest
密码列表 字符串 逗号分隔的密码 123456,password,admin123
用户名文件 文件 每行一个用户名 users.txt
密码文件 文件 每行一个密码 passwords.txt

3.2 浏览器配置

参数名 说明 注意事项
浏览器ws地址 远程浏览器WebSocket地址 与浏览器路径二选一
浏览器路径 本地浏览器可执行文件路径 建议优先使用
代理设置 HTTP/HTTPS代理配置 仅支持HTTP(S)协议

3.3 验证码配置

  • 验证码识别URL:默认使用ddddocr的ocr_api_server项目
    • 默认接口格式:http://{host}:{port}/ocr/b64/json
    • 要求响应格式:
      {
        "result": "验证码识别结果",
        "msg": "相关信息"
      }
      
  • 其他验证码识别工具需兼容上述响应格式

3.4 高级配置

参数名 说明 建议值
自定义selector 手动指定元素选择器 通过DevTools获取
额外等待时间 页面加载后额外等待时间(秒) 针对Vue/React等框架
进程关闭浏览器 是否自动关闭浏览器进程 Windows需关闭杀毒软件
登录检测方式 登录成功判断标准 默认"url+html变化"

3.5 登录检测模式

  1. URL变化检测:仅检测URL是否跳转
  2. HTML变化检测:比较DOM和CSS结构序列
    • 相似度阈值默认0.6(可自定义)
  3. 默认模式:需同时满足URL和HTML变化

4. 使用教程

4.1 获取元素选择器(Selector)

  1. 在目标页面打开开发者工具
    • Mac: Option+Command+I
    • Windows: F11
  2. 点击元素选择工具(左上角箭头图标)
  3. 选择页面中的目标元素
  4. 右键高亮元素 → 复制 → 复制selector

4.2 验证码识别配置

  1. 部署ddddocr的ocr_api_server
    git clone https://github.com/sml2h3/ocr_api_server
    cd ocr_api_server
    pip install -r requirements.txt
    python ocr_server.py
    
  2. 在插件中配置验证码识别URL
    • 示例:http://localhost:9898/ocr/b64/json

4.3 典型配置示例

目标URL: https://example.com/login
用户名文件: users.txt
密码文件: passwords.txt
浏览器路径: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
代理设置: http://127.0.0.1:8080
额外等待时间: 2
登录检测方式: html变化检测
html相似度阈值: 0.7

5. 结果分析

5.1 日志输出

  • 实时显示爆破进度
  • 包含当前尝试的用户名/密码组合
  • 记录页面HTML变化情况(跳转时清空)

5.2 成功结果

  • 跳转后的URL
  • 页面截图(base64编码,需手动提取)
  • 相关HTTP流量记录

5.3 流量镜像

  • 所有爆破尝试的HTTP流量记录
  • 包含登录页面反复访问的记录
  • 可用于分析登录流程和参数

6. 常见问题解决

6.1 元素识别错误

  • 现象:插件无法正确找到输入框或按钮
  • 解决方案:
    1. 使用DevTools获取正确的selector
    2. 在"自定义selector"中手动指定

6.2 Windows杀毒软件拦截

  • 现象:leakless程序被误报病毒
  • 解决方案:
    1. 临时关闭杀毒软件
    2. 或手动关闭残留浏览器进程

6.3 前端框架渲染问题

  • 现象:页面加载完成但元素不可见
  • 解决方案:
    1. 增加"额外等待时间"
    2. 检查是否有动态加载内容

7. 未来优化方向

  1. 内置轻量级验证码识别模块
  2. 支持更多浏览器自动化操作
  3. 优化爆破速度与资源占用
  4. 增强对SPA(单页应用)的支持
  5. 改进元素识别算法准确率

8. 注意事项

  1. 仅限合法授权测试使用
  2. Windows平台建议手动管理浏览器进程
  3. 爆破速度较传统方式慢,需耐心等待
  4. 复杂验证码需依赖外部识别服务
  5. 建议在测试环境充分验证后再用于实际场景
基于无头浏览器的Web登录页面爆破插件使用指南 1. 背景与原理 1.1 传统爆破方法的局限性 现代网站通常不会直接传输明文用户名密码 POST数据往往经过加密处理,难以直接构建请求 需要从混淆的JS文件中逆向加密算法,工作量大 特殊校验参数增加手动爆破的复杂度 1.2 无头浏览器爆破的优势 使用go-rod库模拟真实浏览器操作 自动渲染页面并模拟用户输入行为 绕过前端加密逻辑,直接操作DOM元素 自动处理各种前端框架(如Vue、React)的渲染问题 2. 插件功能概述 2.1 核心功能 自动分析目标页面,识别输入框和提交按钮 通过关键词分析确定用户名/密码输入框位置 支持验证码识别(需配置外部接口) 自动判断登录成功条件(URL变化或页面结构变化) 2.2 工作流程 访问目标URL并分析页面结构 识别关键元素(用户名框、密码框、提交按钮等) 遍历用户名密码组合进行自动输入 监控页面变化判断登录结果 记录爆破过程和结果 3. 详细参数配置 3.1 基本参数 | 参数名 | 类型 | 说明 | 示例 | |--------|------|------|------| | 用户名列表 | 字符串 | 逗号分隔的用户名 | admin,test,guest | | 密码列表 | 字符串 | 逗号分隔的密码 | 123456,password,admin123 | | 用户名文件 | 文件 | 每行一个用户名 | users.txt | | 密码文件 | 文件 | 每行一个密码 | passwords.txt | 3.2 浏览器配置 | 参数名 | 说明 | 注意事项 | |--------|------|----------| | 浏览器ws地址 | 远程浏览器WebSocket地址 | 与浏览器路径二选一 | | 浏览器路径 | 本地浏览器可执行文件路径 | 建议优先使用 | | 代理设置 | HTTP/HTTPS代理配置 | 仅支持HTTP(S)协议 | 3.3 验证码配置 验证码识别URL :默认使用ddddocr的ocr_ api_ server项目 默认接口格式: http://{host}:{port}/ocr/b64/json 要求响应格式: 其他验证码识别工具需兼容上述响应格式 3.4 高级配置 | 参数名 | 说明 | 建议值 | |--------|------|--------| | 自定义selector | 手动指定元素选择器 | 通过DevTools获取 | | 额外等待时间 | 页面加载后额外等待时间(秒) | 针对Vue/React等框架 | | 进程关闭浏览器 | 是否自动关闭浏览器进程 | Windows需关闭杀毒软件 | | 登录检测方式 | 登录成功判断标准 | 默认"url+html变化" | 3.5 登录检测模式 URL变化检测 :仅检测URL是否跳转 HTML变化检测 :比较DOM和CSS结构序列 相似度阈值默认0.6(可自定义) 默认模式 :需同时满足URL和HTML变化 4. 使用教程 4.1 获取元素选择器(Selector) 在目标页面打开开发者工具 Mac: Option+Command+I Windows: F11 点击元素选择工具(左上角箭头图标) 选择页面中的目标元素 右键高亮元素 → 复制 → 复制selector 4.2 验证码识别配置 部署ddddocr的ocr_ api_ server 在插件中配置验证码识别URL 示例: http://localhost:9898/ocr/b64/json 4.3 典型配置示例 5. 结果分析 5.1 日志输出 实时显示爆破进度 包含当前尝试的用户名/密码组合 记录页面HTML变化情况(跳转时清空) 5.2 成功结果 跳转后的URL 页面截图(base64编码,需手动提取) 相关HTTP流量记录 5.3 流量镜像 所有爆破尝试的HTTP流量记录 包含登录页面反复访问的记录 可用于分析登录流程和参数 6. 常见问题解决 6.1 元素识别错误 现象:插件无法正确找到输入框或按钮 解决方案: 使用DevTools获取正确的selector 在"自定义selector"中手动指定 6.2 Windows杀毒软件拦截 现象:leakless程序被误报病毒 解决方案: 临时关闭杀毒软件 或手动关闭残留浏览器进程 6.3 前端框架渲染问题 现象:页面加载完成但元素不可见 解决方案: 增加"额外等待时间" 检查是否有动态加载内容 7. 未来优化方向 内置轻量级验证码识别模块 支持更多浏览器自动化操作 优化爆破速度与资源占用 增强对SPA(单页应用)的支持 改进元素识别算法准确率 8. 注意事项 仅限合法授权测试使用 Windows平台建议手动管理浏览器进程 爆破速度较传统方式慢,需耐心等待 复杂验证码需依赖外部识别服务 建议在测试环境充分验证后再用于实际场景