虎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

相关文章

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)

《在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)》DataGrip是JetBrains公司出品的一款现代化数据库管理工具,支持多种数据库系统,包括MySQL,:本文主要介绍在D... 目录前言一、登录 mysql 服务器1.1 打开 DataGrip 并添加数据源1.2 配置 MySQL

Springboot中JWT登录校验及其拦截器实现方法

《Springboot中JWT登录校验及其拦截器实现方法》:本文主要介绍Springboot中JWT登录校验及其拦截器实现方法的相关资料,包括引入Maven坐标、获取Token、JWT拦截器的实现... 目录前言一、JWT是什么?二、实现步骤1.引入Maven坐标2.获取Token3.JWT拦截器的实现4.

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

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