当前位置: 首页 > 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等显示设备 编码…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...