【JavaScript 逆向】极验四代无感验证码逆向分析

news2024/11/17 16:45:19

前言

四代无感验证码相较于滑块验证码区别就是没有底图,一键通过模式,所以不需要轨迹以及计算缺口距离,步骤更少,四代滑块可以阅读:【JavaScript 逆向】极验四代滑块验证码逆向分析

声明

本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除!

案例目标

无感验证码:aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vYWRhcHRpdmUtY2FwdGNoYS1kZW1v

文件版本:gcaptcha4.js

以上均做了脱敏处理,Base64 编码及解码方式:

import base64
# 编码
# result = base64.b64encode('待编码字符串'.encode('utf-8'))
# 解码
result = base64.b64decode('待解码字符串'.encode('utf-8'))
print(result)

案例分析

抓包

进入网页后,F12 打开开发者人员工具,进行抓包,抓包到的 load 文件跟四代都没什区别,处理方式一样,verify 请求中的 risk_type 为 ai,滑块验证码为 slide,其他的都一样:

响应返回内容如下:

w 参数逆向

w 参数的加密位置还是特征值 "\u0077",也可以跟栈跟到,Initiator 堆栈中跟到 s 位置:

进去格式化文件后,在 6256 行打下断点,跟四代滑块一样,w 参数的值定义在第 6249 行,有 r 参数生成,r 定义在第 6237 行,加密方式也跟四代滑块一样,RSA + AES 加密,不同的在于 e 字典中的内容,下面那个是滑块的,无感没有 setLeft、track、passtime 和 userresponse,其他的加密算法可以看 【JavaScript 逆向】极验四代滑块验证码逆向分析:

里面的键值都是能直接获取到的,重点来讲讲这个,这个键值对每天的值都会变化,虽然几乎没校验,但是也可以来看看是怎么生成的: 

在 6251 行打下断点,可以看到此时这个键值对已经生成了:

向上跟栈,找到其还没生成值的位置,跟到 $_BCFj 中,e 字典在第 6201 行传值:

在 6207 行打下断点,可以 e 字典此时只有四个键值对:

在第 6208 行打下断点,断住后,此时 e 字典中的其他参数值都生成了,证明是执行了 n[$_CBHIE(791)](e); 后生成的:

跟进到 n[$_CBHIE(791)] 中,在第 5766 行,先在 5779 行打下断点,n 中是一些固定值:

再在 5781 行打下断点,断住后会发现那个每天变的值生成了,证明是 _gct(n) 函数返回的:

跟进到 _gct 中,跳转到了 gct.3ac5bbc42b81a701e860478b3566405f.js 文件中,这一串是会变的,从 load 中可以获取到,即 gct_path 的值:

关键算法在第 178 行,GKUV 函数中,全局导出即可:

结果验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/60793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++最后一次实验及实验总结

忙活了大半个学期,终于学完了C,虽然很基础,但是至少算是写完了实验,开心~~ 实验一 实验二 实验三 实验四 实验五 实验六 题目一 一、分析下面的程序,写出其运行时的输出结果。上机运行该程序,观察运行…

[附源码]计算机毕业设计ssm新能源电动汽车充电桩服务APP

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

ROS action客户端和服务端通信(Ubuntu )

ROS action客户端和服务端通信 gcusms ROS 一般都是用 service 和 topic 进行数据之间的交互传输,因为这种通信方式无法满数据实时反馈的要求,所以采用 action 动作消息反馈通信机制(实时反馈的任务进度,并且可以随时终止运行&am…

用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (6)-在线调试

AWPLC 目前还处于开发阶段的早期,写这个系列文章的目的,除了用来验证目前所做的工作外,还希望得到大家的指点和反馈。如果您有任何疑问和建议,请在评论区留言。 1. 背景 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源…

vuex学习记录

为什么要用vuex 由于vue本身的特点。及页面是由多个组件构成。而组件又呈现一个二叉树状态。然后父向子需要进行通信。那如果是非父子关系,应该如何传值呢? 什么是vuex 专门为vue.js应用程序开发的状态管理模式。它采用集中式存储管理数据&#xff0c…

详解 Go 语言中的 init () 函数

阅读目录Go init 函数的详细说明包初始化Go init 函数的详细说明 初始化每个包后,会自动执行 init()函数,并且执行优先级高于主函数的执行优先级。 init 函数通常用于: 变量初始化检查 / 修复状态注册器运行计算 包…

c语言零基础入门(完整版)

1软件下载 官网下载: https://sourceforge.net/projects/orwelldevcpp/ 百度网盘:https://pan.baidu.com/s/1mhHDjO8 提取密码:mken 推荐用百度网盘,官方下载太慢了 开始安装 首先双击打开刚刚下载的软件 点击0k 因为在安装过程中不能使用…

【计算机视觉】图像形成与颜色

图像形成与颜色 光照及阴影 辐射度学 颜色 颜色信息反映了入射光的能量分布与波长,可见光的波长在400nm到760nm之间。 RGB RGB分别代表三个基色(R-红色、G-绿色、B-蓝色),如(0,0,0)表示黑色、(255, 255, 255)表示白色。其中2…

TS装饰器bindThis优雅实现React类组件中this绑定

初学React类组件时,最不爽的一点应该就是 this 指向问题了吧!初识React的时候,肯定写过这样错误的demo。 import React from react; export class ReactTestClass extends React.Component {constructor(props) { super(props); this.state …

程序员如何进化成架构师?

作为程序员的上端,每一个架构师都承担着艰巨的任务:不仅仅要和产品进行周旋,还需要有十分坚实的技术作为基础打底。 那么,架构师都在考虑什么呢? 说到底还是程序架构、结构性的问题。 比如最近十分火爆的分布式系统…

STM32CubeIDE(stm32f767)添加DSP库

对于stm32f4 系列可以使用STM32Cube添加相应的库,自动生成代码。可以参考下面写的文章 (1条消息) STM32CubeMX关于添加DSP库的使用_W_oilpicture的博客-CSDN博客_cubemx dsp库 不过,对于stm32f767等M7的内核目前可能并不适用,需要自己手动添…

CS162 shell

本文记录我在做shell这个作业时用到有关资源,如Linux系统调用、Linux基础知识、C语言知识等。 这里只是非常简略地记录了一下,并且可能有理解不正确的地方,你可以把本文当作一个索引和没有思路时的启发,详细的信息可以再去查&…

SVM(支持向量机)基本形式推导

据说在dl之前是SVM撑起了ml的半片天,学习后发现SVM是由纯粹的数学推导、转化、求解、优化“堆砌”而来,不如说是数学撑起了ml,ml是数学的学科。以下根据老师ppt上讲解的思路讲讲个人对SVM基本形式推导的理解。 margin(间隔&#x…

[附源码]计算机毕业设计现代诗歌交流平台Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

2. IMU原理及姿态融合算法详解

文章目录2. IMU原理及姿态融合算法详解一、组合二、 原理a) 陀螺仪b) 加速度计c) 磁力计三、 旋转的表达a) 欧拉角b) 旋转矩阵c) 四元数d) 李群 SO(3)\text{SO}(3)SO(3) 及 李代数 so(3)\text{so}(3)so(3)四、 传感器的噪声及去除a) 陀螺仪b) 加速度计c) 磁力计五、姿态解算原理…

CSS基础-选择器进阶,背景相关属性(颜色/图片)

CSS基础-选择器进阶,背景相关属性(颜色/图片) 目标:能够理解 复合选择器 的规则,并使用 复合选择器 在 HTML 中选择元素 学习路径:1. 复合选择器2. 并集选择器3. 交集选择器4. hover伪类选择器5. Emmet语法 本次我们所学的内容: 1…

Kafka - 15 Kafka Offset | 自动和手动提交Offset | 指定Offset消费 | 漏消费和重复消费 | 消息积压

文章目录1. Offset 的默认维护位置2. 自动提交 Offset3. 手动提交 Offset1. 同步提交 offset2. 异步提交 offset4. 指定 Offset 消费5. 指定时间消费6. 漏消费和重复消费7. 消费者事务8. 数据积压(消费者如何提高吞吐量)1. Offset 的默认维护位置 Kafka…

触发器——SR锁存器

组合逻辑的基本单元电路是门电路 另外一种电路叫做时序逻辑电路,时序逻辑电路的输出不但和输入有关,还和原来的状态有关 在这样的电路中,一定要具有存储功能,存储原来的状态,一定也要有反馈回路,返回原来…

4-7:用Redis优化登陆模块

相关功能 使用Redis存储验证码 验证码需要频繁的访问与刷新,对性能要求较高。验证码不需永久保存,通常在很短的时间后就会失效。 (Redis可以设置有效时间,分布式应用也可以绕过session共享的问题)分布式部署时,存在Session共享的…