阿里V2滑块小程序版本

本案例中所有内容仅供个人学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关。

请求分析

log1

javascript 复制代码
let reqBody = {
    "AccessKeyId": "LTAI5tGjnK9uu9GbT9GQw72p",
    "Version": "2020-10-15",
    "SignatureMethod": "HMAC-SHA1",
    "SignatureVersion": "1.0",
    "Format": "JSON",
    "Action": "Log1",
    "Data": log1Data,//可以固定
    "SignatureNonce": Q(),
  };
  let signature = getSignature(reqBody, "fpOKzILEajkqgSpr9VvU98FwAgIRcX&");
  reqBody["Signature"] = signature;

InitCaptcha

javascript 复制代码
let reqBody = {
    "AccessKeyId": "LTAI5tSEBwYMwVKAQGpxmvTd",
    "SignatureMethod": "HMAC-SHA1",
    "SignatureVersion": "1.0",
    "Format": "JSON",
    "Timestamp": dayjs.utc().format('YYYY-MM-DDTHH:mm:ss[Z]'),
    "Version": "2023-03-05",
    "Action": "InitCaptchaV2",
    "SceneId": SceneId,//固定值
    "Language": "cn",
    "SignatureNonce": Q(),//随机
  };
  let signature = getSignature(reqBody, "YSKfst7GaVkXwZYvVihJsKF9r89koz&");
  reqBody["Signature"] = signature;

log2

javascript 复制代码
let data = getLog2Data(deviceConfig, fpList);
  let reqBody = {
    "AccessKeyId": "LTAI5tGjnK9uu9GbT9GQw72p",
    "Version": "2020-10-15",
    "SignatureMethod": "HMAC-SHA1",
    "SignatureVersion": "1.0",
    "Format": "JSON",
    "Action": "Log2",
    "Data": data,//环境数组重点
    "SignatureNonce": Q(),
  };
  let signature = getSignature(reqBody, "fpOKzILEajkqgSpr9VvU98FwAgIRcX&");
  reqBody["Signature"] = signature;

VerifyCaptcha接口

javascript 复制代码
  let reqBody = {
    "AccessKeyId": "LTAI5tSEBwYMwVKAQGpxmvTd",
    "SignatureMethod": "HMAC-SHA1",
    "SignatureVersion": "1.0",
    "Format": "JSON",
    "Timestamp": dayjs.utc().format('YYYY-MM-DDTHH:mm:ss[Z]'),
    "Version": "2023-03-05",
    "Action": "VerifyCaptchaV3",
    "SceneId": SceneId,
    "CertifyId": certifyId,
    "CaptchaVerifyParam": JSON.stringify({
      sceneId: SceneId,
      certifyId,
      deviceToken: getDeviceToken(deviceConfig, certifyId, fpList),
      data: verifyData,//轨迹
    }),
    "SignatureNonce": Q(),
  };
  let signature = getSignature(reqBody, "YSKfst7GaVkXwZYvVihJsKF9r89koz&");
  reqBody["Signature"] = signature;

逆向分析

javascript 复制代码
Log1的响应:ResultObject这个要解密非常关键
环境数组:第25位有个动态值,这个值通过Log1接口返回的ResultObject解密的sessionId和key运算而来
Log2的Data:这是阿里v系列的常用加密流程,整体来说就是b64+AES,和web版本对比有一个区别就是最外层的数组第三个值的key是WEB_AES_SECRET_KEY和ACCESS_SEC运算而来
DeviceToken:这个基本和web一致,也是b64+AES的反复折磨,会看到经典阿里的"daye,raolewoba!"
InitCaptcha:中返回的CertifyId很重要,会参与验证接口和最终提交接口
VerifyCaptcha:这个接口没啥好说的和基本和web一致,会简单一点没有那些绑定文件的值和vmp

效果

咨询、沟通、合作

2227669390

相关推荐
candyTong13 小时前
一觉醒来,大模型就帮我排查完页面性能问题
前端·javascript·架构
玩嵌入式的菜鸡14 小时前
网页访问单片机设备---基于mqtt
前端·javascript·css
前端一小卒14 小时前
我用 Claude Code 的 Superpowers 技能链写了个服务,部署前差点把服务器搞炸
前端·javascript·后端
灰子学技术17 小时前
Envoy HTTP 流量层面的 Metric 指标分析
网络·网络协议·http
上海云盾-小余18 小时前
海外恶意 UDP 攻击溯源:分层封禁策略与业务兼容平衡方案
网络·网络协议·udp
豹哥学前端18 小时前
用猜数字游戏,一口气掌握 JavaScript 核心知识点(附完整代码)
前端·javascript
忆往wu前19 小时前
从0到1一步步拆解搭建,梳理一个 Vue3 简易图书后台全开发流程
前端·javascript·vue.js
shao91851619 小时前
第3章(2)——使用Gradio JavaScript Client
javascript·node.js·cdn·gradio·job·events·playcode
光影少年19 小时前
大屏页面,一次多个请求,请求加密导致 点击 全局时间选择器 时出现卡顿咋解决(面板收起会延迟1~2秒)
前端·javascript·vue.js·学习·前端框架·echarts·reactjs
Mr.mjw20 小时前
vue中封装一个环形进度条组件,根据外部盒子大小自适应变化
前端·javascript·vue.js