极验三代滑块绕过¶
对极验系验证的简单说明
- 目前市面上极验的种类整体分为: 三代和四代 ,三代和四代整体逻辑是一致的,不管是无感,滑块还是点选,
或者是四代的五子棋(官网已看不到,但接口还跑得通),消消乐。 - 由于主逻辑大致相同,所以文档编写很简洁。只要定位到
w
值生成的位置。 - 先解决三代时,那时候(去年 2020 年时)使用的是
jsdom
补环境的;到四代出现后直接使用vm
补环境即可,运行效率再提升。
这里先放上通过图,暂不介绍其中步骤。
以下文章是远古时期时写的记录文档,当时就没好好写文档,只在 js 中作了注释。下面文章不具有参考性,我会放上一些同类型的参考文档:
极验无感、滑块和文字点选 js 破解¶
本文档分析了极验无感、滑块和文字点选验证码的
js
流程,其中好多方法暂未优化,这里提供各类验证码的验证流程和绕过示例,其它优化看你自己。注:目前极验滑块版本为
7.8.0
,无感版本为9.0.4
,点选版本是2.9.9
,本项目是使用的都为最新版本
1. 参考文档¶
- 滑块参考文献:
- 流程参考文章
- Github 项目参考
-
无感参考文献
-
点选参考文档
-
暂无
-
注意:修改
tensor
源码内容:
2. 验证流程¶
官网地址:极验官网
2.1. 抓包及验证流程示例¶
暂略,以后有时间补充
2.1.1. 滑块抓包¶
暂略,以后有时间补充
2.1.2. 无感抓包¶
暂略,以后有时间补充
2.1.3. 点选抓包¶
暂略,以后有时间补充
3. 注意事项¶
以下为调试
js
中遇到的坑
- 目前本站调试的验证码当中,涉及到使用随机数的情况,只用获取一次,一轮验证只需要使用同一个随机值
- 滑块第一次
w
值可以为空(gettype
时);无感需要两次都要获取w
值,且两次获取w
值使用同一个随机值,但两次直接使用空的w
值也能通过验证(无语,可能bug
)
4. 运行方式¶
- 前提准备:
- 依赖
node
环境,需要安装jsdom
库,canvas
等第三方库 - 根据
requirements.txt
中安装python3.8
的依赖库(暂未导出) - 运行方法:
- 滑块运行方法:
- 直接运行
run_third.py
文件即可(jsdom
方式) - 运行
run.py
文件也可以(扣代码的方式)
- 直接运行
- 无感运行方法:
- 直接运行
run_fullpage.py
文件即可
- 直接运行
- 点选运行方法:
- 直接运行
run_click.py
文件即可
- 直接运行
5. 优化建议¶
- 可以将无感、滑块和文字点选的所有
js
合并在一起,方便调用。 - 可以去除多余的无关代码(扣代码),但既然用了
jsdom
,就不再搞这些掉头发的事情了,你可以自己尝试去做 - 点选验证需要确定鼠标点击的坐标,本案例使用
github
开源训练模型识别,识别率不高。可以尝试更新训练集自己生成模型,或者接入超级鹰等第三方打码平台。 - 若以后极验平台对
jsdom
的node
环境检测,就需要自己扣代码了。或者使用vm
来实现js
创建浏览器环境。
补充¶
极验3代稍微更新,但是大差不差,给出运行示例。