基于java JxBrowser 浏览器的、支持验证码识别的、登录爆破测试工具
项目性能已经达到瓶颈,后续不再进行新的功能更新,仅进行维护支持
本项目仅供学习和研究目的使用。使用者应当遵守所在国家和地区的相关法律法规,禁止将本项目用于任何非法用途。项目开发者不对使用者的行为及其后果承担任何责任。
法律责任: 使用者在使用本项目的过程中,应自行确保其行为符合法律规定。任何因使用本项目而导致的法律问题,均由使用者自行承担责任。
风险承担: 使用本项目可能涉及修改和执行程序代码,这些操作存在风险,包括但不限于程序崩溃、系统不稳定等。使用者应自行承担所有使用过程中产生的风险。
无担保声明: 本项目以“现状”形式提供,不包含任何明示或暗示的担保。项目开发者不对因使用本项目而产生的任何直接或间接损害承担责任,包括但不限于数据丢失、业务中断等。
第三方链接: 本项目中可能包含第三方网站或资源的链接。这些链接仅为方便使用者提供,项目开发者不对第三方网站或资源的内容、准确性或使用承担责任。
责任限制: 在法律允许的最大范围内,项目开发者不承担任何由于使用或无法使用本项目而引起的直接、间接、特殊或附带损害。
通过使用本项目,您同意接受上述免责条款。如果您不同意这些条款,请不要使用本项目。
1、可选自定义是否重新加载登陆页面, 极大加快爆破进度, 每次重载页面是非常费时的,这也是大部分浏览器模拟爆破工具的缺点.
2、完善的响应匹配机制, 可以配置实际请求包的URL和方法判断响应内容,默认匹配所有响应在响应中默认带有登录成功、登陆失败等关键字是)是极其容易误报的。
3、支持 默认Cookie设置、访问URL和登陆URL不同、等其他场景问题.
4、支持通过正则匹配验证码URL链接,防止验证码带有随机字符串时获取错误的问题.
5、支持部分预点击操作,用于适配双入口的场景
搜索 idea打包jar包
参考配置 https://blog.csdn.net/kelekele111/article/details/123047189
对于需要调用ocr识别的情况,需要先启动ocr api服务器.
考虑使用本地免费ddddocr api
https://github.com/winezer0/OcrApi/tree/main/ddddocr_api
使用命令java -jar JXBrowerBrute.jar
打开工具
根据 UI 进行手动配置
如需设置每个元素的默认值和其他选项,便于对项目进行重复爆破,请修改 config.prop 配置文件
自定义启动时的配置文件名称
java -Dconfig=xxx.prop -jar JXBrowerBrute.jar
远程API OCR识别需要自己搭建ocr服务器,
默认使用ddddocr_api的接口即可
dddd_ocr_api
https://github.com/winezer0/OcrApi/tree/main/dddd_ocr_api
本工具会通过post传输base64的图片数据到ocr识别接口
对于需要使用自己的web接口需求,需要配置 【远程识别设置】里的 api地址和相关响应提取方法
返回的数据可通过正则自定义提取, 默认提取所有响应内容作为验证码。
常见的验证码地址有两种情况
1、验证码地址固定
例如:http://xxxx/new_captcha.html
2、验证码地址不固定
例如:http://xxxx/new_captcha.html?timestamp=时间戳
对于 场景1 可以直接设置 验证码地址为 http://xxxx/new_captcha.html
对于 场景2 需要设置为 正则模式 如 .new_captcha.html.
当验证码地址框填入的是URL的时候,可以点击 【识别测试】 按钮,从远程下载验证码进行识别测试.
因此,对于场景2想要测试识别验证码需要填一个有效验证码URL进行测试, 爆破前再改为正则模式.
通用识别配置用于指定 验证码识别结果的校验,对于不符合的格式的识别结果进行忽略
有两种方案: 1、正则匹配 2、验证码长度
举例:
验证码长度固定是4 可以 在长度校验处填4
验证码时长度固定4位 并且都是数字字符 可以改为 [\w]{4}
表明此时无法判断当前网页是否加载完毕、但是响应中提示了密码错误,
解决方案: 勾选 保存异常识别状态 强制保存当前的结果
直接访问 login.html 由于没有Cookie会失败的场景
解决方案1: 配置文件中配置初始 Cookie
init_cookies=Cookie: PHPSESSID=cde568e4057972b8f1f1e7afae4baad1
解决方案2: 输入多个登录URL
login_url=http://1.1.1.1/admin||http://1.1.1.1/admin/login.html
直接访问 login.html 由于没有Cookie会失败,访问/admin服务端会设置cookie然后跳转登录 /login.html
目前仅实现单进程爆破操作, 如果需要多开任务,就多开几个程序操作
由于jxBrowser版本问题, 没有办法进行太多的自定义配置。
场景不适用的原因大概就是因为内置浏览器版本过低,无法打开部分网站的网页。
已知 samwaf 场景不适用,
已知 预点击场景可能未完善