js逆向-某东cfe滑块逆向分析

声明

本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负! 如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!

分析

网址:

aHR0cHM6Ly9jZmUubS5qZC5jb20vcHJpdmF0ZWRvbWFpbi9yaXNrX2hhbmRsZXIvMDMxMDE5MDAvP3JldHVybnVybD1odHRwczovL2l0ZW0uamQuY29tLzEwMDA0ODI3Mjc2Mi5odG1sJnJxaG9zdD1odHRwczovL2FwaS5tLmpkLmNvbSZycGlkPXJwLTE4NjU0OTQ5MC0xMDA1Ni0xNzA5NzEzMjA4MzcxJmV2dHlwZT0yJmV2YXBpPWNvbG9yX3BjX2RldGFpbHBhZ2Vfd2FyZUJ1c2luZXNzJnNvdXJjZT0xJmZvcmNlQ3VycmVudFZpZXc9MQ==

直接上图
Alt

点击【快速验证】
![image.png](https://img-blog.csdnimg.cn/img_convert/96ed05ad9c543a0f49860269989b4556.png

可以看到是一个比较常规的滑块验证码,感觉难度一般,只有轨迹校验的会比较严格。

还是老样子,进行一下抓包,观察一下整体的流程,然后进行模拟。

点击快速验证就会出来验证码相关的接口,逐个分析。

抓包分析
  1. 第一个api请求,参数中有一个enbody进行了加密。

image.png
返回内容中有一个data,该参数贯穿整个流程,十分重要。

image.png

  1. 第二个api请求经过测试,可以忽略。
  2. fp接口,参数中有sict两个加密参数。

image.png

响应中中的st在下面用到了,fp没有发现用处。
image.png

  1. 第一个check接口,请求参数有si(第一个api返回的data),tkct(和之前的ct无关)

image.png

相应内容比较关键了,有接口的base64格式的图片。
image.png

  1. 第二个check接口(滑块验证接口),请求参数有si(第一个api返回的data)、tkct都是新的加密生成内容。

image.png

滑块验证正确的结果:
image.png

滑块验证失败的结果:
image.png

还有其他情况,这里就不过多展开了。如果出现代表加密参数模拟出现问题,自行检查。

总结

一共有4个网络请求需要关注

  • 第一个api接口请求
  • fp接口请求
  • 第一次check接口请求
  • 第二个check接口请求

逻辑分析

api请求分析

上文中提及的验证码发包流程请求均是xhr,所以直接打下xhr断点分析会比较方便,后面的所有接口都是这种方式去寻找堆栈。

  • xhr断点怎么操作?
  • Sources面板->右边XHR/fetch BreakPoints

image.png

重新刷新页面,点击快速验证即可触发断点。
向下跟几层堆栈,就可以发现端倪
image.png

image.png

参数含义
requrestId需要验证的页面id
evApi不清楚直接写死
shshshfpx指纹随机生成
eid不清楚直接写死

shshshfpx的算法可以扣一扣还是比较简单的。
image.png

然后就是请求参数中的enbody参数,跳进方法中。
image.png
实际加密是AES加密,直接引入现成库CryptoJS

// npm install crypto-js
const CryptoJS = require('crypto-js')

至此第一个api接口的加密参数分析完成,其实第二个api的加密和第一个是一致的,只是参数不同。

fp 请求分析

依旧是使用xhr断点,跟栈很轻松定位。
image.png

扣代码没什么难度,需要什么拿什么即可。

check请求分析

image.png
第一次请求中的t是空字符串,第二次的请求涉及到了轨迹加密。

我这里轨迹处理使用的是缩放法,也可以选择网上开源的轨迹库,这个问题不大。

验证

image.png

整体来说还是比较适合练手,难度适中。

参考资料

某东三种验证码分析流程

微信公众号.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/755612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTF题型 SSTI(2) Flask-SSTI典型题巩固

CTF题型 SSTI(2) Flask-SSTI典型题巩固 文章目录 CTF题型 SSTI(2) Flask-SSTI典型题巩固前记1.klf__sstiSSTI_Fuzz字典(网上收集自己补充) 2.klf_2数字问题如何解决了?|count |length都被禁? 3.klf_3 前记 从基础到自己构造paylo…

实现:mysql-5.7.42 到 mysql-8.2.0 的升级(rpm方式)

实现:mysql-5.7.42 到 mysql-8.2.0 的升级(rpm方式) 1、升级准备1、使用mysql-shell 检查工具检查兼容性 2、操作环境3、备份数据库、my.cnf文件,停止mysql服务(重要)4、上传、解压安装包5、查看已安装的my…

第十三届蓝桥杯省赛真题 Java C 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 排列字母试题 B: 特殊时间试题 C: 纸张尺寸试题 D: 求和试题 E : \mathbf{E}: E: 矩形拼接试题 F: 选数异或试题 G: GCD试题 H: 青蛙过河试题 I: 因数平方和试题 J \mathrm{J} J : 最长不下降子序列 发现宝藏 前些天发现了一个巨牛的人…

一周学会Django5 Python Web开发-Jinja3模版引擎-模板语法

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计37条视频,包括:2024版 Django5 Python we…

问界汽车提车全流程及注意点【伸手党福利】

问界汽车提车全流程及注意点 目录 说明为没买车和没提车的小伙伴提供参考全程必须车主办理(人必须在场),如果不是车主授权书很难办。时间:提车用时4小时,2个人 提车提前联系-交付专员做好需求调研当天-到店验车-千万不…

Vue+SpringBoot打造民宿预定管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色2.2.2 房主角色2.2.3 系统管理员角色 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿4.3 新增民宿评价4.4 查询留言4.5 新增民宿订单 五、免责说明 一、摘要 1.1 项目介绍 基于…

算法——位运算(一篇搞定)

本专栏为大家分享本人学习算法遇到的不同类型的题目以及解析! 此篇文章给大家分享一些关于位运算算法的题目,在开篇还讲述了常见位运算的公式以及题目,如果对您有帮助,麻烦点个关注,如有错误,请您指出! 1.常见位运算总结(包含5道题目) 1.1基础位运算 运算符操作<<左移&…

vue 部署 abap BSP

How to Create a Vue.Js App with VS Code and Deploy... - SAP Community 详情见上面这个教程连接 Open VS Code and open a terminal window and run npm install -g vue/cli restart vscode. Open a terminal window again and go to your workspace folder to create the…

国密算法 SM9 公钥加密 数字签名 密钥交换 基于身份的密码算法(IBC)完整高效的开源python代码

上篇文章&#xff08;发布于2023-09-18&#xff09;给自己挖了个坑&#xff0c;说是要搞定SM9。从国庆前一周开始&#xff0c;到现在一个月时间&#xff0c;这个坑终于填上了。此前信息安全数学基础太差&#xff0c;理解不了SM9双线性对、扩域计算等等&#xff0c;为此还特意选…

由浅到深认识C语言(6):变量的存储类型

该文章Github地址&#xff1a;https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.csdn…

想做好国际现货黄金行情交易 请从这样的预期开始

国际现货黄金行情以多变而著称&#xff0c;而这样多变的行情&#xff0c;又由于其趋势稳定&#xff0c;而深受投资者喜爱。我们看近期&#xff0c;国际现货黄金行情不断上涨&#xff0c;短线呈现出很强的上涨趋势&#xff0c;这正是投资者入场交易的好时机&#xff0c;但是要做…

目标检测——PP-YOLOE-R算法解读

PP-YOLO系列&#xff0c;均是基于百度自研PaddlePaddle深度学习框架发布的算法&#xff0c;2020年基于YOLOv3改进发布PP-YOLO&#xff0c;2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet&#xff0c;2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列&#xff0c;所以放一起解…

从头手搓一台ros2复合机器人(带机械臂)

一.前言 大家好呀&#xff0c;从本小节开始我们就步入了仿真篇&#xff0c;主要对机器人仿真进行介绍与操作&#xff0c;当然仿真有优点也有缺陷&#xff0c;基于对此学习&#xff0c;我们可以对上几小节创建的小车模型模拟硬件的特性&#xff0c; 比如&#xff1a; 有多重…

洛谷[NOIP2016 提高组] 玩具谜题

[NOIP2016 提高组] 玩具谜题 题目背景 NOIP2016 提高组 D1T1 题目描述 小南有一套可爱的玩具小人&#xff0c;它们各有不同的职业。 有一天&#xff0c;这些玩具小人把小南的眼镜藏了起来。小南发现玩具小人们围成了一个圈&#xff0c;它们有的面朝圈内&#xff0c;有的面…

JetBrains学生包续期

Pycharm进入显示your license has expired 这个意思是你的许可过期了&#xff0c;重新输入最新的激活码就可以了。 1. 说明我的JetBrains学生包需要进行续期了。首先登录JetBrains官网打开个人主页&#xff0c;点击Renew my Education Pack 2. 然后填写一系列信息&#xff0c;…

VR历史建筑漫游介绍|虚拟现实体验店|VR设备购买

VR历史建筑漫游是一种利用虚拟现实技术&#xff0c;让用户可以身临其境地参观和探索历史建筑的体验。通过VR头显和相关设备&#xff0c;用户可以在虚拟环境中自由移动和互动&#xff0c;感受历史建筑的真实氛围和文化内涵。 在VR历史建筑漫游中&#xff0c;您可以选择不同的历史…

手机备忘录怎么导出到电脑,如何将手机备忘录导出到电脑

备忘录是我们日常生活和工作中常用的工具之一&#xff0c;我们可以在手机上轻松地记录重要的事务、想法和灵感。然而&#xff0c;在某些情况下&#xff0c;我们可能需要将手机备忘录导出到电脑进行更详细的整理和管理。那么&#xff0c;手机备忘录怎么导出到电脑&#xff0c;如…

开箱即用之 windows部署jdk、设置nginx、jar自启

jdk安装 官网下载对应的安装包&#xff0c;解压之后放在本地指定的文件夹下 传送门https://www.oracle.com/java/technologies/downloads/#jdk21-windows 我比较喜欢下载zip方式的&#xff0c;解压之后直接能用&#xff0c;不需要安装了 配置环境 JAVA_HOME 添加path路径 …

MySQL数据导入的方式介绍

MySQL数据库中的数据导入是一个常见操作&#xff0c;它涉及将数据从外部源转移到MySQL数据库表中。在本教程中&#xff0c;我们将探讨几种常见的数据导入方式&#xff0c;包括它们的特点、使用场景以及简单的示例。 1. 命令行导入 使用MySQL命令行工具mysql是导入数据的…

有关【指针运算】的经典笔试题

题目1&#xff1a; #include <stdio.h>int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的输出结果是什么&#xff1f; 2 5解析&#xff1a; 代码的内存布局如图&#xff1a…