一款基于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格式
相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万2 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋2 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁2 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95272 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大2 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师2 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学2 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端