当前位置: 首页 > news >正文

JS逆向之顶像滑块

本教程仅限于学术探讨,也没有专门针对某个网站而编写,禁止用于非法用途、商业活动、恶意滥用技术等,否则后果自负。观看则同意此约定。如有侵权,请告知删除,谢谢!

目录

一、接口请求流程

二、C1包

三、ac

四:测试结果

总结


前言

本期逆向一下顶像滑块,官网介绍:采用设备环境、行为特征、访问频率等多个风险判断要素,以及业内最丰富的验证方式帮助客户进行人机风险防控。并通过顶象防御云进行感知迭代, 能够有效拦截批量撞库扫号、批量注册等机器风险行为。
看起来很牛逼的勒,越牛逼越想肝他,简单的反而不想肝它,因为顶像滑块它的JS是动态的,参数、函数都是变化的,所以只能补环境,没法做到算法还原,怎么实现的函数动态?这也就不清楚了,函数一直没变只是加密顺序与参数变了,比如本来的加密流程是:A>B>C,它呢在一定时间能可能变成了:B>A>C的加密顺序.更多的介绍百度了,很多大佬对这方面详细解答了.
但是找到一个网站JS参数、函数是不变的,这大大减低了难度(了解一下流程补环境了相对也就简单),也就是说可以还原成python算法了😄
本期滑块练手网址:aHR0cHM6Ly93d3cudml2by5jb20uY24vc2VydmljZS9tb2JpbGVQaG9uZUF1dGhlbnRpY2l0eUNoZWNrL2luZGV4


提示:以下是本篇文章正文内容,下面案例可供参考

一、接口请求流程

1.先看看获取滑块图片的接口参数,大致看看也没什么重要参数,jsv的加密的JS版本(也就是之前介绍的动态参数函数所对应的版本,不过这个网址是定制的,不会变的,所以固定就好了),ak是产品id,aid呢是时间戳加随机数,w、h、s等这些参数就不介绍了用处不是很大,固定就好了,

2.在看响应内容有什么玩意,p1、p2就是滑块了不过呢是撕裂的,需要通过o值去还原撕裂的图像,老版本的顶像不是通过o值,可以看下我之前的图像还原,算法还是一样的算法,只不过从url提值变成了o,减少了url提值的步骤摆了。还有一个y、sid值后面加密要用,其它的没啥鸟用了.

3.验证接口/api/v1,这个就是最好一步了,验证滑块了,恶心人的ac它来了不过问题不大,sid就是滑块的安全验证id咯,c值是通过c1两个包请求得来的,aid呢嘿嘿发现了吧有什么不同自己领悟,xy就不用说了

4.c1两次请求包,请求头的Param咯,又是长长的一串欸,问题大吗?应该问题不大吧.
好了,吉时已到,是时候上邢法了

二、C1包

图像还原呢就不说了,看我之前的文章

1.看下c1这两次请求有什么吧,第一次请求的包,老办法anonymous一顿乱点

2.下个断点加密了什么一目了然,简单还原下python算法,其它网站的就不要想着还原了,都是动态的,我只是想借此让你们了解一下顶像的流程

import time
import json
import math
import randomdef get_lid():a = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"return "".join(a[math.floor(random.random() * len(a))] for _ in range(32))def getParam(data, lid=None):if lid is None or not data.get("lid", False):lid = str(int(time.time() * 1000)) + get_lid()data["lid"] = lidu = "=x1LItAH4sf8gp6ewnXQTiKuF_5EkC2m7WjdrM"f = "UlGhvYo3aRzcq-VPyJBb9NZOD0S"o = (u + f)[::-1]if not isinstance(data, str):data = json.dumps(data, separators=(",", ":"), ensure_ascii=False)g = ""len_data = len(data)for p in range(0, len_data, 3):i = ord(data[p])a = ord(data[p + 1]) if p + 1 < len(data) else 0u = ord(data[p + 2]) if p + 2 < len(data) else 0f = i >> 2c = ((3 & i) << 4) | (a >> 4)s = ((15 & a) << 2) | (u >> 6)ll = 63 & uif not a:s = ll = 64elif not u:ll = 64g += o[f] + o[c] + o[s] + o[ll]return g

3.第二次请求,还是一顿乱点进去看看在哪加密的

4.加密的代码还是刚刚的加密,只不过内容变了而已简简单单搞定C1

5.验证一下结果,成功拿到响应的data数值

三、ac

1.除了ac其它都搞定了,很好接下来看看它怎么搞的,乱披风锤法,瞎几把乱点

2.进来大致看下吧,我总共下了两个断点两个插桩日志                        
第一个断点:这个是对滑块轨迹进来加密,与xy轴加密                          
第二个断点:刚开始拿到滑块呢,进来reload重载ua(ac)加密            
第一个插桩:我主要用来打印轨迹,因为我在其它地方进行了轨迹push 
第二个插桩:对加密完成的ac打印出来                                                    

3.进来看看reload(重载)干了啥事情咯,看懂了吗?朋友们?ok这里检测浏览器的环境就自己慢慢扣了,也不多

function () {var i = r[133], a = this;this["ge" + E + en](),// 1.检测时间this[t[134]](),// 2.检测浏览器this[kt(e[139])](),// 3.检测防盗链this[Zt(r[134])](),// 4.检测代码this[e[140]](),// 5.检测浏览器高度,画图用this[n[137]](),// 6.检测自动化this[Kt(on + M)](),// 7.检测js版本this["getTK"](),// 8.检测sid(token)Rt[Kt(an + i)][Qt(r[135])](function () {a[t[135]](),// 9.检测screena[Nt(o[133])]()// 10.监听轨迹})
}

4.简单介绍一下第10个检测吧,绑定的监听轨迹吧,欸哟喂,还是挺多了监听了一大堆,自己慢慢调式吧,相信你能找到对轨迹数组加密的地方,这下知道为什么我第一个插桩push明文的轨迹了吧,用于加密对比.

5.看下sendSA,这个是对被加密的轨迹数组进行app加密到ua(ac)中,sendTemp就是x轴与滑块接口的y轴了,OK整体流程就这样搞定,扣下来吧不难的

6.小提示:大部分加密都是围绕app这个函数加密的,实在找不到轨迹的加密,可以尝试着断点app,根据栈去找到轨迹的加密

四:测试结果

基本都成功了,二次验证滑块多了才会触发,也是正常通过的,二次验证的坑自己慢慢领悟了,上面也有介绍了,看你有没有注意到了


总结

以上就是顶像的所有埋坑,能搞定这个的话,其它网站的滑块相信你也能将环境补出来,再见咯~

相关文章:

JS逆向之顶像滑块

本教程仅限于学术探讨&#xff0c;也没有专门针对某个网站而编写&#xff0c;禁止用于非法用途、商业活动、恶意滥用技术等&#xff0c;否则后果自负。观看则同意此约定。如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; 目录 一、接口请求流程 二、C1包 三、ac 四…...

【css】textarea-通过resize:none 禁止拖动设置大小

使用 resize 属性可防止调整 textareas 的大小&#xff08;禁用右下角的“抓取器”&#xff09;&#xff1a; 没有设置resize:none 代码&#xff1a; <!DOCTYPE html> <html> <head> <style> textarea {width: 100%;height: 150px;padding: 12px 20p…...

Linux内核学习小结

网上学习总结的一些资料&#xff0c;加上个人的一些总结。 Linux内核可以分成基础层和应用层。 基础层包括数据结构&#xff0c;内核同步机制&#xff0c;内存管理&#xff0c;任务调度。 应用层包括文件系统&#xff0c;设备和驱动&#xff0c;网络&#xff0c;虚拟化等。文件…...

八、ESP32控制8x8点阵屏

引脚的说明如下 上图中 C表示column 列的意思,所有的C接高电压,即控制esp32中输出1L表示line 行的意思,所有的L接低电压,即控制esp32中输出为01. 运行效果 2. 点阵屏引脚...

使用gitee创建远程maven仓库

1. 创建一个项目作为远程仓库 2. 打包项目发布到远程仓库 id随意&#xff0c;url是打包到哪个文件夹里面 在需要打包的项目的pom中添加 <distributionManagement><repository><id>handsomehuang-maven</id><url>file:D:/workspace/java/2023/re…...

基于C#的应用程序单例唯一运行的完美解决方案 - 开源研究系列文章

今次介绍一个应用程序单例唯一运行方案的代码。 我们知道&#xff0c;有些应用程序在操作系统中需要单例唯一运行&#xff0c;因为程序多开的话会对程序运行效果有影响&#xff0c;最基本的例子就是打印机&#xff0c;只能运行一个实例。这里将笔者单例运行的代码共享出来&…...

2023-08-07力扣今日二题

链接&#xff1a; 剑指 Offer 29. 顺时针打印矩阵 题意&#xff1a; 如题 解&#xff1a; 麻烦的简单题&#xff0c;具体操作类似走地图&#xff0c;使用一个长度四的数组表示移动方向 我这边的思路是如果按正常的方向没有路走了&#xff0c;那转向下一个方向一定有路&am…...

Spring接口ApplicationRunner的作用和使用介绍

在Spring框架中&#xff0c;ApplicationRunner接口是org.springframework.boot.ApplicationRunner接口的一部分。它是Spring Boot中用于在Spring应用程序启动完成后执行特定任务的接口。ApplicationRunner的作用是在Spring应用程序完全启动后&#xff0c;执行一些初始化任务或处…...

奶牛排队 java 思维题

&#x1f468;‍&#x1f3eb; 5133. 奶牛排队 题目描述 约翰的农场有 n n n 头奶牛&#xff0c;每一头奶牛都有一个正整数编号。 不同奶牛的编号不同。 现在&#xff0c;这 n n n 头牛按某种顺序排成一队&#xff0c;每头牛都拿出一张纸条写下了其前方相邻牛的编号以及其…...

uniapp 微信小程序 判断数据返回的是jpg还是pdf,以及pdf预览

<template> <view class"approval-notice"><block v-for"(imgItem, idx) in drivingLicense" :key"idx">//如果是非图片&#xff0c;那就走pdf预览<view class"pdf-item" v-if"Object.keys(thumbnail).incl…...

SpringBoot 的事务及使用

一、事务的常识 1、事务四特性&#xff08;ACID&#xff09; A 原子性&#xff1a;事务是最小单元,不可再分隔的一个整体。C 一致性&#xff1a;事务中的方法要么同时成功,要么都不成功,要不都失败。I 隔离性&#xff1a;多个事务操作数据库中同一个记录或多个记录时,对事务进…...

Android中的ABI

Android中的ABI ABI是Application Binary Interface的缩写。 ABI常表示两个程序模块之间的接口&#xff0c;且其中一个模块常为机器码级别的library或操作系统。 ABI定义了函数库的调用、应用的二进制文件&#xff08;尤其是.so&#xff09;如何运行在相应的系统平台上等细节…...

Python爬虫在用户行为模型构建中的应用与挑战

嗨&#xff0c;大家好&#xff01;作为一名专业的爬虫代理&#xff0c;我今天要和大家分享一些关于爬虫与人类行为分析的知识。在数字化时代&#xff0c;我们每天都在互联网上留下大量的数据痕迹&#xff0c;通过分析这些数据&#xff0c;我们可以理解用户行为、性偏好和需求&a…...

LangChain与大模型的学习

这里写目录标题 问题记录1、库的版本问题 实例记录1、公司名生成2 提示模板的使用3LLM Chain 参考资料 问题记录 1、库的版本问题 openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(hostapi.openai.com, port443): Max retries excee…...

C语言标准定义的32个关键字

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。 …...

PE半透明屏是怎么制造的?工艺、材料、应用

PE半透明屏是一种新型的屏幕材料&#xff0c;具有半透明的特点。 它由聚乙烯&#xff08;PE&#xff09;材料制成&#xff0c;具有良好的透明度和柔韧性。PE半透明屏广泛应用于建筑、广告、展览等领域&#xff0c;具有很高的市场潜力。 PE半透明屏的特点之一是其半透明性。 它…...

linux文本三剑客---grep,sed,awk

目录 grep 什么是grep&#xff1f; grep实例演示 命令参数&#xff1a; 案例演示&#xff1a; sed 概念&#xff1a; 常用选项&#xff1a; 案例演示&#xff1a; awk 概念&#xff1a; awk常用命令选项&#xff1a; awk变量&#xff1a; 内置变量 自定义变量 a…...

leaflet-uniapp 缩放地图的同时 显示当前缩放层级

记录实现过程&#xff1a; 需求为移动端用户在使用地图时&#xff0c;缩放地图的同时&#xff0c;可以获知地图此时缩放的级别。 效果图如下&#xff1a;此时缩放地图级别为13 map.on() 有对应的诸多行为 查看官网即可&#xff0c;这里根据需要为--zoomstart zoom zoomend 代…...

[Securinets CTF Quals 2023] Admin Service,ret2libc,One is enough

只作了3个pwn&#xff0c;第4个附件没下下来&#xff0c;第5个不会 Admin Service 这是个最简单的题&#xff0c;最后来弄出来。原来只是看过关于maps文件的&#xff0c;一直没什么印象。 题目一开始设置seccomp禁用execv等&#xff0c;看来是用ORW&#xff0c;然后建了个mm…...

计算机组成原理-笔记-第二章

二、第二章——数据的表示和运算 1、进位制度&#xff08;二进制、十进制&#xff09; 2、BCD码&#xff08;余三码、2421码&#xff09; 编码方式 功能 好处 弊处 BCD码 将每个十进制数码转换为4位二进制码 精度高&#xff0c;适合直接用于数码管或LED等显示设备 编码…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...