传统渗透测试爆破有困难?
字数 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 工作流程
- 访问目标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项目
- 其他验证码识别工具需兼容上述响应格式
3.4 高级配置
| 参数名 |
说明 |
建议值 |
| 自定义selector |
手动指定元素选择器 |
通过DevTools获取 |
| 额外等待时间 |
页面加载后额外等待时间(秒) |
针对Vue/React等框架 |
| 进程关闭浏览器 |
是否自动关闭浏览器进程 |
Windows需关闭杀毒软件 |
| 登录检测方式 |
登录成功判断标准 |
默认"url+html变化" |
3.5 登录检测模式
- URL变化检测:仅检测URL是否跳转
- HTML变化检测:比较DOM和CSS结构序列
- 默认模式:需同时满足URL和HTML变化
4. 使用教程
4.1 获取元素选择器(Selector)
- 在目标页面打开开发者工具
- Mac:
Option+Command+I
- Windows:
F11
- 点击元素选择工具(左上角箭头图标)
- 选择页面中的目标元素
- 右键高亮元素 → 复制 → 复制selector
4.2 验证码识别配置
- 部署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
- 在插件中配置验证码识别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 元素识别错误
- 现象:插件无法正确找到输入框或按钮
- 解决方案:
- 使用DevTools获取正确的selector
- 在"自定义selector"中手动指定
6.2 Windows杀毒软件拦截
- 现象:leakless程序被误报病毒
- 解决方案:
- 临时关闭杀毒软件
- 或手动关闭残留浏览器进程
6.3 前端框架渲染问题
- 现象:页面加载完成但元素不可见
- 解决方案:
- 增加"额外等待时间"
- 检查是否有动态加载内容
7. 未来优化方向
- 内置轻量级验证码识别模块
- 支持更多浏览器自动化操作
- 优化爆破速度与资源占用
- 增强对SPA(单页应用)的支持
- 改进元素识别算法准确率
8. 注意事项
- 仅限合法授权测试使用
- Windows平台建议手动管理浏览器进程
- 爆破速度较传统方式慢,需耐心等待
- 复杂验证码需依赖外部识别服务
- 建议在测试环境充分验证后再用于实际场景