【JavaScript 逆向】抖店滑块逆向分析

article/2025/9/19 0:52:09

声明

本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除!

案例目标

接口:

aHR0cHM6Ly93d3cuZG91eWluLmNvbS9hd2VtZS92MS93ZWIvdXNlci9wcm9maWxlL290aGVyLw==

以上均做了脱敏处理,Base64 编码及解码方式:

import base64
# 编码
# result = base64.b64encode('待编码字符串'.encode('utf-8'))
# 解码
result = base64.b64decode('待解码字符串'.encode('utf-8'))
print(result)

案例分析

抓包

输入手机号,点击发送验证码,即会弹出滑块验证:

  /captcha/get 接口返回滑块及缺口背景图 url,其他返回值也在轨迹中,tip_y 即轨迹中 的值: 

请求参数 detail 在 /v2/?msToken=&X-Bogus= 接口的返回值中,fp 生成算法如下:

function getFp() {var e = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""), t = e.length, n = (new Date).getTime().toString(36), r = [];r[8] = r[13] = r[18] = r[23] = "_",r[14] = "4";for (var o, i = 0; i < 36; i++)r[i] || (o = 0 | Math.random() * t,r[i] = e[19 == i ? 3 & o | 8 : o]);return "verify_" + n + "_" + r.join("")
}

/captcha/verify 即验证接口,fp、detail 是一样的,server_sdk_env 经过 url 编码,captchaBody 是需要逆向的关键参数,里面包含鼠标轨迹、滑动轨迹、AES(GCM)、base64、SHA512 加密等等:

逆向分析

直接从验证接口的堆栈中跟到 captcha.js 文件中,和 X-Bogus 参数的 webmssdk.es5.js 文件解混淆后的样子很像,同样也是 jsvmp,如果做过 X-Bogus 参数逆向的,对这个应该很熟悉,但 captchaBody 的生成逻辑不像 X-Bogus,插桩之后一步步的很清晰,是需要结合单步慢慢跟的,同时以下这部分在整个 js 中类似的 7 个,插桩很容易插错地方,整个流程也并不是只在一个里面进行,是需要注意的:

通过 webpack 导出补环境也是可以的,不过这里还是扣算法:

关键点插桩,能看到可能使用过 AES 加密,箭头指的都是需要注意的,异步 crypto.subtle.importkey() 方法:

打断点跟栈,要清缓存:

m[0] 即各种轨迹,captchaBody 校验的轨迹很多: 

 w[_] = E(m) 也是个关键位置,很多方法都能从这里单步向后跟找到:

 例如此时的轨迹被转成了字符串,算法位置单步向后跟即可找到:

一步步跟就会看到以下几个关键位置:

数组拼接:

SHA512 算法加密了很多点,比如一开始的轨迹、随机字符串等等,可以直接引库:

随机字符串:

AES 加密模式为 GCM:

结果验证


http://chatgpt.dhexx.cn/article/etMMJB8b.shtml

相关文章

MAC 逆向APK

准备逆向工具 apkTool 、apkTool.jar 、dex2Jar稳定版 &#xff08;不要下载最新的2.0或者2.1 最新的dex2jar 运行会报错&#xff09;、JUI 查看代码结构 &#xff08;1&#xff09; apkTool 、apkTool.jar&#xff1a;Apktool - How to Install 上面这段话是&#xff1…

java逆向_Java逆向入门(一)

Java是一门"半编译半解释"型语言.通过使用jdk提供的javac编译器可以将Java源码编译为Java虚拟机(Java Virtual Machine, JVM)可读的字节码(bytecode),即*.class文件. 学习字节码可以使你更好的理解Java虚拟机的行为,甚至对学习其它基于Java虚拟机的语言(如:Scala,Clo…

Android逆向基础——APK的格式

Android 安装包常以apk&#xff08;android Package&#xff09;、xapk为后缀&#xff0c;本质是一个压缩包&#xff0c;包内存存放运行着应用程序安装必要的所有资源、代码。可直接修改后缀为zip解包。 解包后目录大致如下&#xff1a; assets 资源文件&#xff0c;通过cont…

JS逆向笔记-记录某测试论坛的js逆向练习

这个网站应该是专门练习的&#xff0c;因为有个地方说不太通&#xff0c;在此只能算是练习&#xff0c;记录下&#xff0c;方便以后进行查阅。 首先访问主页&#xff1a; 他会设置一个cookie值&#xff0c;并且会把加密的salt 带出来。还有个叫lt的东西也会用html的形式传出来。…

Matlab逆向归纳法,逆向归纳法

逆向归纳法(backward induction)是求解动态博弈均衡的方法 [编辑] 什么是逆向归纳法 逆向归纳法(backward induction)是求解动态博弈均衡的方法。所谓动态博弈是指博弈参与人的行动存在着先后次序&#xff0c;并且后行动的参与人能够观察到前面的行动。逆向归纳法在逻辑上是严密…

逆向工程

逆向工程 数据库部分逆向工程说明导入文件 reverseProject添加相应jar包修改这个工程三个 .xml 文件都要修改的地方修改generatorConfig.xml文件 工程终点-运行GeneratorSqlMap.java文件 在使用mybatis时需要根据数据表创建实体类&#xff0c;pojo类的映射文件以及sql语句和Dao…

逆向 实战

逆向实操 汇编 《汇编语言》,王爽 《天书夜读》邵坚磊等 《Intel汇编指令集手册》 基础 学习汇编的原则 不推荐写纯汇编程序,一般都是通过_asm{}方式嵌入部分汇编代码学习汇编的目的是:解底层&#xff0c;调试&#xff0c;逆向分.c-编译->.s-汇编→.o(linux平台)/.obj(wi…

微信逆向分析(一)——逆向分析的原理

逆向的简单理解 正向开发&#xff0c;是先写代码&#xff0c;再编译成软件。而逆向分析&#xff0c;到手的只有软件。从软件入手&#xff0c;推测对应的代码&#xff0c;需要了解一下编译之后的软件是怎么跑起来的。 软件运行过程 1、软件加载到内存。 2、CPU读取内存的指令…

【JavaScript 逆向】网易易盾滑块逆向分析

声明 本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 案例目标 验证码&#xff1a;aHR0cHM6Ly9kdW4uMTYzLmNvbS90cmlhbC9qaWdzYXc 以上均做了脱敏处理&#xff0c;Base64 编码及解码方式&#xf…

【JavaScript 逆向】今日头条 jsvmp,_signature 参数分析

前言 现在一些网站对 JavaScript 代码采取了一定的保护措施&#xff0c;比如变量名混淆、执行逻辑混淆、反调试、核心逻辑加密等&#xff0c;有的还对数据接口进行了加密&#xff0c;这次案例是通过补环境过 jsvmp。 声明 本文章中所有内容仅供学习交流&#xff0c;相关链接…

【JavaScript 逆向】拼多多 anti_content 参数逆向解析

前言 现在一些网站对 JavaScript 代码采取了一定的保护措施&#xff0c;比如变量名混淆、执行逻辑混淆、反调试、核心逻辑加密等&#xff0c;有的还对数据接口进行了加密&#xff0c;这次案例是通过补环境过加密。 声明 本文章中所有内容仅供学习交流&#xff0c;相关链接做…

CTF逆向基础

更多资源请进入&#xff1a;https://github.com/SycloverTeam/SycRevLearn 查看。 1 IDA定位main函数 运行T1.exe。 将可执行程序放入IDA中&#xff0c;并查找字符。 双击。 按F5&#xff0c;进入代码。 可以对函数进行重新命名&#xff0c;此时也已经得到了flag。 2 …

[系统安全] 一.什么是逆向分析、逆向分析基础及经典扫雷游戏逆向

您可能之前看到过我写的类似文章&#xff0c;为什么还要重复撰写呢&#xff1f;只是想更好地帮助初学者了解病毒逆向分析和系统安全&#xff0c;更加成体系且不破坏之前的系列。因此&#xff0c;我重新开设了这个专栏&#xff0c;准备系统整理和深入学习系统安全、逆向分析和恶…

逆向--基础知识篇

基础知识 可执行文件 计算机中可以被直接执行的程序被称之为可执行文件&#xff0c;可执行文件中是由指定操作系统的可执行文件格式规范与当前CPU机器指令码组成。不同的操作系统、不同的CPU之间的可执行文件都可能存在或多或少的差异。本篇主要以Windows操作系统、x86架构的…

逆向入门到入土

第一章 概述 学了几个月的逆向&#xff0c;记得10月份国庆节刚开始学的时候 感觉找flag蛮有意思&#xff0c;看着一个up主的视频&#xff0c;那时候c语言也没怎么学&#xff0c;所以就单纯他怎么做&#xff0c;我自己怎么做&#xff0c;后面去一些ctf靶场做了几道题&#xff0…

BNU1064:人品问题

“人品既不能被创生&#xff0c;也不能被消灭。只能从一个人转移到另一个人&#xff0c;从一个层面转化到另一个层面&#xff0c;而在转移和转化的过程当中&#xff0c;人品的总和保持不变。” 至此引出人品学(Characterics)三定律&#xff1a; 第一定律&#xff1a;即人品守恒…

开发者的人品问题

程序员都知道&#xff1a;绝大多数编程中的问题&#xff0c;最终都是自己的人品问题。当遇到奇怪的问题时&#xff0c;我们总是喜欢怀疑系统、怀疑编译器、怀疑网络、怀疑硬件……就是不愿意怀疑自己的人品。熬过几个不眠之夜后&#xff0c;最终还是发现自己的代码存在人品问题…

A. 人品问题

A. 人品问题 Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class name: Main Submit Status PID: 1064 Font Size: - “人品既不能被创生&#xff0c;也不能被消灭。只能从一个人转移到另一个人&#xff0c;从…

BNU 1082 人品问题

这个题我是1A 突然觉得自己好叼 #include<bits/stdc.h> int main() {printf("25\n");return 0; }

人品问题

Description 网上出现了一种高科技产品——人品测试器。只要你把你的真实姓名输入进去&#xff0c;系统将自动输出你的人品指数。yzx不相信自己的人品为0。经过了许多研究后&#xff0c;yzx得出了一个更为科学的人品计算方法。这种方法的理论依据是一个非常重要的结论&#xff…