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

声明

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

分析

网址:

javascript 复制代码
aHR0cHM6Ly9jZmUubS5qZC5jb20vcHJpdmF0ZWRvbWFpbi9yaXNrX2hhbmRsZXIvMDMxMDE5MDAvP3JldHVybnVybD1odHRwczovL2l0ZW0uamQuY29tLzEwMDA0ODI3Mjc2Mi5odG1sJnJxaG9zdD1odHRwczovL2FwaS5tLmpkLmNvbSZycGlkPXJwLTE4NjU0OTQ5MC0xMDA1Ni0xNzA5NzEzMjA4MzcxJmV2dHlwZT0yJmV2YXBpPWNvbG9yX3BjX2RldGFpbHBhZ2Vfd2FyZUJ1c2luZXNzJnNvdXJjZT0xJmZvcmNlQ3VycmVudFZpZXc9MQ==

直接上图

点击【快速验证】

![image.png](https://img-blog.csdnimg.cn/img_convert/96ed05ad9c543a0f49860269989b4556.png

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

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

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

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

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

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

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

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

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

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

滑块验证正确的结果:

滑块验证失败的结果:

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

总结

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

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

逻辑分析

api请求分析

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

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

重新刷新页面,点击快速验证即可触发断点。

向下跟几层堆栈,就可以发现端倪

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

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

然后就是请求参数中的enbody参数,跳进方法中。

实际加密是AES加密,直接引入现成库CryptoJS

javascript 复制代码
// npm install crypto-js
const CryptoJS = require('crypto-js')

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

fp 请求分析

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

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

check请求分析

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

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

验证

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

参考资料

某东三种验证码分析流程

相关推荐
小小前端--可笑可笑18 小时前
Vue / React 单页应用刷新 /login 无法访问问题分析
运维·前端·javascript·vue.js·nginx·react.js
小林敲代码778818 小时前
记一次 Vue 项目首屏优化:从 7.1s 到 0.9s,深挖 Gzip 的力量
前端·javascript·vue.js
Highcharts.js19 小时前
什么是向量图表?如何用 Highcharts 快速创建一个笛卡尔坐标图/矢量图?
javascript·开发文档·highcharts·图表开发·向量图·矢量图表·笛卡尔坐标图
脱离语言20 小时前
Jeecg3.8.2 前端经验汇总
开发语言·前端·javascript
NEXT0620 小时前
useMemo 与 useCallback 的原理与最佳实践
前端·javascript·react.js
小爱丨同学20 小时前
React-Context用法汇总 +注意点
前端·javascript·react.js
木易 士心1 天前
ESLint 全指南:从原理到实践,构建高质量的 JavaScript/TypeScript 代码
javascript·ubuntu·typescript
前端达人1 天前
都2026年了,还在用Options API?Vue组合式API才是你该掌握的“正确姿势“
前端·javascript·vue.js·前端框架·ecmascript
chao-Cyril1 天前
从入门到进阶:前端开发的成长之路与实战感悟
前端·javascript·vue.js
前端达人1 天前
被JavaScript忽视的Web Animations API:为什么说它是前端动画的真正未来?
开发语言·前端·javascript·ecmascript