虎ya登录滑块(3-6,js逆向)

2024-02-18 17:10
文章标签 登录 js 逆向 滑块 ya

本文主要是介绍虎ya登录滑块(3-6,js逆向),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网站地址:aHR0cHM6Ly93d3cuaHV5YS5jb20v

一、整体流程分析

1、访问df/token链接拿到encryptWebDeviceFeature加密相关的encryptSeed、token
2、访问df/collect链接拿到sdid
3、访问v2/smsCode链接拿到滑块链接(slide_url,另一个窗口)
4、访问3中返回的slide_url
5、访问safe_auth/pt_auth链接
6、访问metric.huya.com链接
7、访问client/config3链接,拿到滑块的相关数据(gurl、vurl...)
8、访问gurl链接拿到滑块底图以及huyapk、segment
9、访问vurl链接,验证滑块是否通过

二、根据流程逐个链接分析
1、df/token链接,无加密参数,正常请求即可

2、df/collec链接,加密参数为encryptWebDeviceFeature,加密方式为AES(ECB模式,key为上一步返回的encryptSeed),加密位置如下:
在这里插入图片描述

3、v2/smsCode链接,这里的context和behavior是我不确定的一个点,目前我也不知道他是否检测了,反正我写死滑块也能过,所以就不纠结了。携带的sdid是上一步返回的,requestId的生成方式如下,其他的固定就好

function guid() {var e = 1;var t = new Date;return e && 1 == e ? Date.UTC(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds()) - Date.UTC(t.getFullYear(), t.getMonth(), t.getDate(), 0, 0, 0, 0) : e && 2 == e ? Date.UTC(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds()) : "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function(e) {var t = 16 * Math.random() | 0, o = "x" == e ? t : 3 & t | 8;return o.toString(16)})
}

4、slide_url链接,返回的slide_url地址中有个param参数,需要用正则匹配下来,后面会用到

5、safe_auth/pt_auth链接,无加密,正常请求即可

6、metric.huya.com链接,有个data加密,加密位置如下:
在这里插入图片描述
这里校验了一些环境值,很多写死即可,改下sguid和its就可以了,这里涉及到两个加密的函数(toXCodeArray和xEncode),都很好扣,跟进去就行

7、client/config3链接,这里要把page改为上面所返回的slide_url,param改为步骤4中的param,然后其他参数我都固定了。这个链接返回了
请求滑块网址(gurl)、请求验证网址(vurl)、一段后面加密会用到的js,反正一大堆 稍微注意一下就行
在这里插入图片描述

8、访问gurl链接,拿到背景图(base64)、code、huyapk、segment,背景图是乱序的,还原的数组为segment,这里是先通过一些算法由segment生成一个15位的数组,代码如下:

//这里放之前返回的js
var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
atob1 = function(a) {var n = String(a).replace(/[=]+$/, "");if (n.length % 4 == 1)throw new t("'atob' failed: The string to be decoded is not correctly encoded.");for (var r, i, o = 0, s = 0, c = ""; i = n.charAt(s++); ~i && (r = o % 4 ? 64 * r + i : i,o++ % 4) && (c += String.fromCharCode(255 & r >> (-2 * o & 6))))i = e.indexOf(i);return c
}console.log(JSON.parse(atob1(window.UdbCipher.decrypt(segment, huyapk))).ord)

拿到真正的还原数组后,接下里就很好办了
在这里插入图片描述
9、vurl链接,这里唯一需要变的是act参数,其他的我都写死了,我总感觉写死不太好,但由于没业务需求,就没深究了,能过就行哈哈。act参数就是encodeURI一下,然后 btoa,最后经过一下之前返回的js里面的一个函数加密就出来了,比较简单 就不跟进去分析了。(不校验轨迹,固定即可

三、请求验证
在这里插入图片描述
总结:这个滑块总体而言较为简单,就是流程特别多,所以耐心点就好哈哈
溜了溜了,拜拜!

这篇关于虎ya登录滑块(3-6,js逆向)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721852

相关文章

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

Spring Security重写AuthenticationManager实现账号密码登录或者手机号码登录

《SpringSecurity重写AuthenticationManager实现账号密码登录或者手机号码登录》本文主要介绍了SpringSecurity重写AuthenticationManage... 目录一、创建自定义认证提供者CustomAuthenticationProvider二、创建认证业务Us

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技