逆向实战29——某度-某家号2024旋转验证码识别

前言

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

目标网站

aHR0cHM6Ly9hdXRob3IuYmFpZHUuY29tL2hvbWU/ZnJvbT1iamhfYXJ0aWNsZSZhcHBfaWQ9MTU2NTA5MjE0MjUwODY1OA==

前言

本文

之前搞过一个某壳登录的文章里面有牵扯到百度的喵星人指纹

今天来搞一下某度-某家号的旋转验证码。

说实话 我也不知道这个是v1旋转还是v2旋转。

只是刚好用到了。就研究了一下。

分析

通过代码或者自动化工具或是代理访问会出现验证码。

也可以通过无痕浏览器清除掉cookie 反复刷新两次也可以出现

如下图

刷新此页面

如图所示 列表中没有数据。我们网上看。

这里不卖关子了。

第一次的viewlog 请求。

请求参数如下

  • ak是固定值。
  • callback的生成逻辑如下(写死也可以)
  • _ 是时间戳
js 复制代码
function get_callback() {
                    page = 0
                    prefix = "__jsonp"
    
    
                    return "".concat(prefix).concat(page++).concat((new Date).getTime())
                }

返回值

as 和 tk 以及as 在之后的请求参数会用到

getstyle获取图片

如图所示。这个请求呢就是获取图片的参数。

请求参数如下

  • 其他参数同第一次参数一样
  • tk 第一个请求的返回值里的值
    返回值
    backstr,以及img
    img就是需要识别的图片。

第三次请求第二次viewlog请求

如图所示。又是 viewlog请求

传参

  • 其他参数同上。
  • as 第一次接口返回
  • tk 第一次接口返回
  • fs 需要我们逆向的参数。

fs的生成逻辑

首先打开第二次viewlog参数生成的地方。我们跟栈进去

找到这个postData

往上走

ok

以及看到了fs的生成逻辑了。

就是这个

js 复制代码
var i = JSON.stringify(o.rzData), r = o.encrypt(i)

这里牵扯到两个东西

  1. o.rzData
  2. o.encrypt

o.rzData

如上图所示 可以看到。分别有两个参数

backstr:上文请求获取到的backstr

ac_c:识别的角度。仍需判断参数传递位置。

我们继续在代码中搜索 ac_c

最后锁定在这个位置。

然后我们继续找i.percentage

最后确定在这个位置。

ac_c的计算方式如下

js 复制代码
var ac_c = parseFloat(angle / 360).toFixed(2)

angle是识别的角度。

o.encrypt

这个就很简单了。

断点进去一看 一目了然的AES。

唯一不清楚的点

js 复制代码
t = this.store.nameL + this.store.nameR
  • this.store.nameL: 第一次请求返回的 as
  • 定值:"appsapi0"

识别验证码以及封装

这里呢 识别验证码。有一万种方法识别。我就不推荐了。毕竟也没有广告费。

获取的角度以及接口返回的backstr还有as当作传参生成fs

最后传给最后一次的viewlog请求。

最后op传参返回为1 代表返回成功。

然后再看数据接口

果然有数据。

结语

成功后 如图所示

本章说实话不难。但是需要的资料较多。而且要有耐心。识别验证码也需要找打码平台或者自己训练。

也算是不错的一个学习案例。

相关推荐
老毛肚2 分钟前
jeecgboot vue API 拆分02
前端·javascript·vue.js
ZC跨境爬虫18 分钟前
跟着 MDN 学JavaScript day_4:如何存储你需要的信息——变量
开发语言·前端·javascript·ui·ecmascript
VcB之殇24 分钟前
[Three.js] 实现两个3D模型之间的粒子化切换
前端·javascript·three.js
ZC跨境爬虫33 分钟前
跟着 MDN 学JavaScript day_6:JavaScript 中的基础数学——数字与运算符
开发语言·前端·javascript·学习·ecmascript
sugar__salt9 小时前
从栈队列数据结构到JS原型面向对象全解
前端·javascript·数据结构
MageGojo9 小时前
随机文案模块怎么做?从接口封装到前端展示的完整实现思路
javascript·前端开发·api接口·后端开发·随机文案
独特的螺狮粉9 小时前
篮球集训班器具管理系统 - 鸿蒙PC Electron框架完整技术实现指南
前端·javascript·华为·electron·前端框架·开源·鸿蒙
小妖6669 小时前
js 生成随机数技巧 Math.random().toString(36)
javascript·随机数
AI_零食10 小时前
番茄钟鸿蒙PC Electron框架完成:状态机、定时器管理与专注力工具设计
前端·javascript·华为·electron·开源·鸿蒙·鸿蒙系统
提子拌饭13310 小时前
逛三园游戏——基于鸿蒙PC Electron框架实现
前端·javascript·游戏·华为·electron·鸿蒙