一款基于selenium的前端验证码绕过爆破工具

PackFilling

version 0.3.4 by AugustTheodor github GitHub - AugustineFulgur/PackFilling: 基于selenium的无脑绕前端加密表单爆破工具 开源 欢迎提交脚本

安装与使用

在使用之前,您需要:

  1. Python 3.8+,pip
  2. 安装依赖: pip install -r requirements.txt
  3. 获取一个Chrome以及与其版本适配的chromedriver:下载地址
  4. 查看settings.py并配置
  5. 使用命令python driver.py -run [conf json文件],运行脚本

参数

  • -run conf 运行工具
  • -h 帮助

1.这是做什么的?

这是一个用于自动化处理表单填写的脚本,并带有基本的验证码识别功能,在应对WEBPACK时有奇效。

2.如何使用它?

在使用之前,请先查看globalsettings.py与settings.json文件并将其配置好。前者是整个工具的全局设置部分,这些设置能够复用,而后者的大部分内容会随着爆破目标的改变而变化,所以是一次性的内容。也正因如此,两者被分开为两个文件。 在globalsettings.py文件中主要配置的是DRIVERPATH与CHROMEPATH,分别为chromedriver与chrome本体执行文件的路径。 在settings.json中配置的是每次爆破的参数,可以准备多个json文件,在使用时只需要在-run后指明对应的json文件即可,settings.json文件中的参数说明请参照文件中对应的注释:

以下为一个简单的配置例子: Demo 若要爆破此表单,则应依次获得输入框及验证码图片的path,以及提交按钮的path,并拦截一次请求提交的包,获取其请求方式与URL。path的获取方式如下图所示:

复制后,将用户名与密码的jspath填入KEYS_PATH中,验证码输入框的jspath与验证码图片的Xpath 依次填入IDENTIFY_PATH中。 然后,将对应输入框的字典文件路径或单个值填入VALUES_PATH。它的顺序与KEYS_PATH中的输入框顺序相同。若其中包含单个值,则需要在VALUES_TYPE中指明。 然后,将提交按钮的path输入SUBMIT_PATH,将URL输入TARGET。 最后,在INDICATE项中填入提交的请求方法,提交的路径,即完成设置。 设置完毕的文件如下Settings_demo

3.依赖相关

本脚本采用chromedriver驱动chrome浏览器,若需要更换浏览器版本,请确保下载的chromedriver与chrome的版本相适配。 如果需要换成其他的浏览器则需要重写部分代码。目前知道的是PhantomJS不能够完成验证码识别功能(不能截图),其余浏览器及其driver需要使用者自己尝试配置。

4.插件

目前,使用者能够编写插件的功能有:

  • 【获取爆破页面】
  • 【提交数据前】
  • 【输入数据】
  • 【提交数据】
  • 【请求拦截器】
  • 【输出】
  • 【输出行首】
  • 【输入验证码】

插件本质上为一个py文件,其中与设置项中的插件设置名同名小写的函数即为对应步骤的插件。

etc.若我要编写一个【获取爆破页面】的插件refresh_identify-modules,使脚本在获取爆破页面后点击一次验证码图片使其刷新,则此文件的内容应为一个函数名为driver_get_target(与DRIVER_GET_TARGET同名小写)的函数,其输入输出与drivermodules.py下的同名函数输入输出相同,参考 refresh_identify-modules。 在使用时,则将DRIVER_GET_TARGET项设置为其文件名refresh_identify-modules。 若如此做,脚本将执行此函数的以drivermodules.py中的函数。

除此之外,也有插件可以替代数个功能,例如xpath-modules,这是因为这个插件文件内有数个函数。 若要编写插件,请参考drivermodules中的函数及其输入输出,作为插件对应函数的输入输出。

5.TIPS

  • 若使用XPATH模式填写路径,最好复制元素的完整XPATH,这样既没有烦人的双引号也不会导致WEBPACKER随机生成ID造成的填写失败
  • 若要与其他工具联动(如BP),最快的方式是------------在配置中配置一个代理。

更新历史

  • 0.1.0 开天辟地,基础功能完成
  • 0.2.0 增加了终端返回请求原始参数的功能,补全README文档
  • 0.3.0 增加爆破音叉模式,修改配置文件为.json格式
相关推荐
不好听6133 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端
恒拓高科WorkPlus3 小时前
企业级内网即时通讯建设模型:BeeWorks内网IM四层架构
前端
前端小李子4 小时前
前端环境变量裸奔?我用 EnvShield 给它穿了件防弹衣
前端
youtootech4 小时前
HarmonyOS《柚兔学伴》项目实战25-我的页面、Web 嵌入与项目总结
前端·华为·harmonyos
小林ixn5 小时前
从零到一理解 React 父子组件通信:手写一个 Todo 应用带你彻底搞懂单向数据流
前端·javascript·react.js
醇氧6 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
我的xiaodoujiao7 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
qetfw7 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
甲维斯7 小时前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能