跳转至

极验四代点选绕过

本文档以极验 4 代的点选为示例,介绍极验验证码的通用流程。非保姆级教程,需要跟着动手调试。

1. 前提条件

极验 4 代点选逆向前准备如下:

  • 谷歌浏览器,调试使用
  • fiddle 等抓包工具(可选)
  • 目标网址:极验 4 代点选

2. 抓包

分析的第一步,先跑通整个验证流程,看看有哪些重要的请求。

image-20220309164921740

3. 验证流程

【官网情况下】极验 4 代比 3 代的旧逻辑少了 registergettypeajax 之类的请求,只有 loadverify 请求包来验证。

由以上抓包可知,只要正确模拟出 loadverify 请求即可。

3.1. config 相关

此请求用于获取 load 请求中的 captcha_id 参数,以调试可知:captcha_id 参数不变动,应该是 js 版本之类的标识,写死或在对应页面返回中提取都行。

不重要,略。看自己选择是写死或发送请求获取。

3.2. load 请求

load 请求详细信息

image-20220309165907525

load 响应内容

image-20220309170917530

字段 说明 类型 是否必填 备注
captcha_id 类似版本号信息 str 写死或 adaptive-captcha-demo.js 取值都行
challenge 应该是用于同轮验证之类 str 3.2.1. challenge 生成逻辑 中查看
client_type 客户端类型 str 写死,值为 web
risk_type 验证类型 str 写死,值为 word
lang 语言 str 写死,值为 zh
callback 回调 str 不重要,按规则生成即可
  • 返回结果(只介绍重要参数):
字段 说明 类型 备注
ques 需要点击的图片顺序 list 可以据此得到正确点击顺序
lot_number 用于 3.3. verify 请求 中的参数 str

3.2.1. challenge 生成逻辑

challenge 好定位,可以跟进去 uuid 的方法,也很简单,略。

challenge 获取方法:

image-20220307091303737

注: 在遇到类似这种方法生成或缓存配置中取值都行的,且这个参数在同轮验证多次用到时,我们最好在意下每次调试时此值的变动。

3.3. verify 请求

首先查看请求详情,这里不再截图,自己去看。

字段 说明 类型 是否必填 备注
captcha_id 类似版本号信息 str 写死或 adaptive-captcha-demo.js 取值都行
challenge 应该是用于同轮验证之类 str 3.2.1. challenge 生成逻辑 中查看
client_type 客户端类型 str 写死,值为 web
lot_number 批号 str 3.2. load 请求返回而来
risk_type 验证类型 str 写死,值为 word
pt 不重要 int 写死,值为 1
w 轨迹环境等处理而得 str 3.3.1.w 值生成逻辑 中查看
callback 回调 str 不重要,按规则生成即可
  • 返回结果(只介绍重要参数):
字段 说明 类型 备注
pass_token 通过验证后的值 str

3.3.1.w 值生成逻辑

这里只介绍大流程,详细步骤自己根据调用栈调试。

image-20220309173639521

3.3.2.点选图的处理

点选图的文字顺序及对应坐标,这里暂不细讲,想快速实现的话,推荐使用是 ddddocr v1.4.3 就可以实现目的。

具体请在 ddddocr 升级版使用方法 中查看。

4. 如何运行

再知道主要逻辑后,如何运行我们定位到的代码呢。扣代码,补环境看自己选择。推荐补环境运行,不管是补环境框架实现还是 jsdom 实现都行(已验证,jsdom 和 补环境都可以实现)。

这里放上补环境框架实现的代码部分,jsdom 运行部分请查看以前写的 3 代逻辑。

image-20220310101810916

5. 总结

极验逻辑相同,新手可以从最简单的无感搞起(虽然无感不传 w 值也能通过验证),跑通 w 值的逻辑再调试滑块或点选之类的更方便(毕竟滑块和点选之类的有底图还原和轨迹生成之类的)。

  • 极验不管 3 代还是 4 代,无感、滑块、点选,还是拼图和五子棋之类的,其主要逻辑都是相同的,只是 3.3.1.w 值生成逻辑 调试图中的 e 之类的参数格式有所不同而已,自己调试下就知道了。
  • 点选坐标有缩放大小,自己多调试,找出缩放比例。

这里补上整个运行流程图:

image-20220309162059108

评论

回到页面顶部