极验3逆向 JS逆向最新点选验证码 逆向分析详解

目录

声明!

        一、请求流程分析

        二、w参数生成位置

        三、主要问题

        四、结果展示

原创文章,请勿转载!

本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。

声明!

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关。
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除,请各位自觉遵守相关法律法规。

具体位置为官网的demo(float):demo 列表

一、请求流程分析

        1.拿gt与challenge

        2.根据gt与challeng拿到验证码等信息

        3.拿到验证码进行后计算出距离

        4.根据得出的距离进行加密,得到w参数,即可校验是否通过

        5.通过后会响应带指的 validate

                

二、w参数生成位置

        1.跟旧版的点选差不多,找参数生成位置的办法,就是再click.js文件中搜索关键词 "\u0077",就可以找到w的生成位置,例如:

        

        2.找到生成位置后,我们发现是由p+u生成的,而p和u就在上面,这个时候思路就清晰多了,打上断点,看看p和u是怎么生成的:

        3.可以看得出来,p和u就是在这个地方生成的,扣代码的话可以从这个地方开始扣了,由于代码是经过ob混淆的,我们可以先解混淆,这样更方便我们调试:

        

三、主要问题

        1.做到一半,可以发现轨迹值是经过特殊处理的,例如:

        2.这个很简单,就基本的加减乘除,result传递原始的坐标位置即可。以下代码即可处理:

	def set_xy(self, result):res_a = str()for info in result.split('|'):final_x = int(round(int(info.split(',')[0]) / 333.38 * 100 * 100, 0))final_y = int(round(int(info.split(',')[1]) / 333.38 * 100 * 100, 0))res_a += str(final_x) + '_' + str(final_y) + ','return res_a.strip(',')

四、结果展示

创作不易求个赞再走~~~

学习交流QQ:450297392

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

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

相关文章

Pytorch 1.9.0环境安装

pytorch官方链接: https://pytorch.org/get-started/previous-versions/ 安装指令:conda install pytorch1.9.0 torchvision0.10.0 torchaudio0.9.0 cudatoolkit11.3 -c pytorch -c conda-forge 报错:Solving environment: unsuccessful initial attemp…

分支机构多,如何确保文件跨域传输安全可控?

随着企业全球化发展,分支机构的分布越来越广泛,跨域文件传输需求也随之增加。然而,跨域文件传输面临的数据安全和传输效率问题,使得构建一个安全、可控的文件交换系统成为迫切需求。FileLink跨网文件交换系统通过综合的技术手段和…

Java常见集合类一(List)

一、Collection接口及其常见实现子类、子接口 由上图可以看出,Collection 接口实现了 Iterable 接口; Iterable接口是Java集合类中的核心接口之一,实现该接口的类具有迭代功能,它提供了能够对实现它的子类 中的元素进行逐个遍历的…

Android 13 sysprop_library新增属性

前提 我们在androidP及之前的版本,平台侧及应用层开发习惯于通过调用(或者反射)SystemProperties系统API的方式进行系统属性的读写。Android R以后,平台侧代码采用了一种将系统属性封装成类方法的形式供开发者调用。 Android R以…

go语言,golang,linux,unbantu安装

查看系统是arm还是amd uname -m 命令可以显示系统的架构类型: uname -m输出可能是: x86_64:表示是 AMD64 架构(即 64 位的 x86 架构)。aarch64:表示是 ARM64 架构(即 64 位的 ARM架构&#xf…

SMB工具横向移动

一. SMB工具介绍和使用 1.介绍 2013年的Defcon上,就引入了smbexec,后续 smbexec 被 Impacket 进一步完善了。在Impacket中支持明文认证,NTLM认证,Aeskey认证等方式! 2. 使用方法 命令: smbexec.exe 用户…

【计算机毕业设计】基于SSM+Vue的线上旅行信息管理系统【源码+lw+部署文档】

目录 摘 要 第1章 绪论 1.1背景及意义 1.2 国内外研究概况 1.3 研究的内容 第2章 相关技术 2.1 Java简介 2.2 SSM三大框架 2.3 MyEclipse开发环境 2.4 Tomcat服务器 2.5 MySQL数据库 第3章 系统分析 3.1 需求分析 3.2 系统可行性分析 3.2.1技术可行性:技术背景 …

Debug-011-ES6中的链判断运算符(?.)

这个问题的来源是: 前端在请求后端接口,拿到的数据,有可能是这样的: data:{a:{b:{c:{d:""}}} } 我们前端小伙伴联调时需要取到d的值,我以前是这样写的: // 错误的写法 const value data.a.b.c…

ACM Proceedings Template 使用方法

模板导入 打开ACM Primary Article Template官网,可以看到自带overleaf模板,接下来我们使用overleaf来自动导入模板。 选择你需要的ACM Conference or Journals模板,然后Open as Template 栏目说明 接下来依次解释一下左边栏目的作用 …

5月28号总结

刷题记录 1.A. Phone Desktop 输入: 11 1 1 7 2 12 4 0 3 1 0 8 1 0 0 2 0 15 0 8 2 0 9 输出: 1 1 2 2 1 1 0 1 1 2 5 题意:题目给我们1x1和2x2的图标个数,让我们求最少需要多少个5x3的屏幕。 思路:当只看2x2的图…

MySql开源闪回工具MyFlash

MyFlash是由美团点评公司技术工程部开发并维护的一个开源的MySQL闪回工具,主要用于回滚DML(数据操纵语言)操作,如INSERT、UPDATE和DELETE。这个工具通过解析MySQL的binlog文件(版本v4),来实现数…

开源与闭源:AI大模型发展路径的博弈

一、引言 在人工智能(AI)领域,大模型以其卓越的性能和广泛的应用前景,成为了近年来技术发展的热点。然而,在大模型的发展路径上,开源与闭源两种模式一直存在着激烈的博弈。本文将深入探讨这两种模式在大模…

代码即世界

在阿德莱德,我再次强烈感受到了Community这个概念。小地方人,外来人口少,他们只关注本地的生态、经济和事件,对外国人、甚至悉尼墨尔本发生的事情都不感兴趣。这点和中国人不一样,中国人即使是在穷乡僻壤的一个秀才&am…

天地图api总结

天地图案例 <template><div id"map" class"tdmap"><div class"button_click"><el-button click"mark" type"primary" size"mini">添加点位</el-button><el-button click"…

module ‘plotting‘ has no attribute ‘EpisodeStats‘

plotting.py 的版本不同&#xff0c;可以使用下列版本 reinforcement-learning/lib/plotting.py at master dennybritz/reinforcement-learning GitHubImplementation of Reinforcement Learning Algorithms. Python, OpenAI Gym, Tensorflow. Exercises and Solutions to a…

C++之左值、右值、完美转发

1、左值、右值概念 左值&#xff1a; 是指在内存中有明确的地址&#xff0c;可以进行取地址操作。 // 以下的a、p、*p、b都是左值 int a 3; int* p &a; *p; const int b 2; 右值&#xff1a; 只提供数据&#xff0c;无法进行取地址操作。 double x …

如何将云服务器上操作系统由centos切换为ubuntu

本文将介绍如何将我们购买的云服务器上之前装的centos切换为ubuntu&#xff0c;云服务器以华为云为例&#xff0c;要切换的ubuntu版本为ubuntu20.04。 参考官方文档&#xff1a;切换操作系统_弹性云服务器 ECS (huaweicloud.com) 首先打开华为云官网&#xff0c;登录后点击右…

frm一级4个1大神复习经验分享系列(二)

先说一下自己的情况&#xff0c;8月份中旬开始备考&#xff0c;中间一直是跟着网课走&#xff0c;notes和官方书都没看&#xff0c;然后10月份下旬开始刷题一直到考试。下面分享一些自己备考的经验和走过的弯路。 一级 一级整体学习下来的感受是偏重于基础的理论知识。FRM一级侧…

MongoDB分片集群容灾方案

MongoDB分片集群容灾方案 1. 集群同步工具介绍1.1 第三方数据同步工具mongoshake1.2 官方同步工具mongosync 2. 工具对比2.1 数据一致性2.2 稳定性和可靠性2.3 维护成本 3. 总结 1. 集群同步工具介绍 最近客户咨询MongoDB分片集群市面上主流的容灾方案&#xff0c;所以抽空整理…

Java | String类型使用注意事项

String不支持下标访问&#xff01; String s1"wgh";中&#xff0c;创建了一个String对象&#xff08;此语句等效为String s1new String("wgh")&#xff09;。直接用字符串字面量构造的字符串在常量池里&#xff1b;用new String方法构造的字符串在堆里。 …