快手网页滑块验证码分析

重新看了一遍流程,发现官网有一些更新。

现在双验证接口,分别是 /rest/zt/captcha/sliding/kSecretApiVerify 和 /rest/zt/captcha/sliding/verify

不过这俩接口是独立校验的,二者目前没有关联关系。(无论过了哪一个API的校验,都可以使用)

本文主要说一下新的验证接口 kSecretApiVerify 。


kSecretApiVerify

kSecretApiVerify 近期是新加的,参数是verifyParam。

在这里插入图片描述

如何断点不再详细介绍,大家可以参考老文章。

在这里插入图片描述

c.a[i("0x31")](r) 的值是验证接口中,加密前的verifyParam。

c.a[i("0x31")] 等同于 urlencode。

可以在控制台输出 r 。

在这里插入图片描述

经过分析,这几个参数含义如下:

  • captchaSn 滑块验证码信息
  • bgPicWidth 原背景图 Width
  • bgPicHeight 原背景图 Height
  • cutPicWidth 原滑块图 Width
  • cutPicHeight 原滑块图 Height
  • captchaExtraParam 浏览器指纹信息
  • gpuInfo 浏览器GPU信息
  • trajectory 滑动轨迹
  • relativeX 滑块X轴拖动距离
  • relativeY 滑块Y轴高度

captchaSn 、bgPicWidth、bgPicHeight、cutPicWidth、cutPicHeight 是根据 captchaSession 获取的验证码配置信息。

获取接口是 /rest/zt/captcha/sliding/config

captchaExtraParam 、gpuInfo 可以设为定值

relativeY 在配置信息中有,relativeX 需要自行计算。

trajectory 我们处理时需要由拖动距离生成。


trajectory

有行为检测,代码生成的匀速轨迹并不能通过校验,手动去复制吧。

操作方法如文章所示:《快手本地轨迹库制作方法》
在这里插入图片描述


verifyParam

kSecretApiVerify接口提交的参数是加密的,也就是说需要对明文的verifyParam加密。

在这里插入图片描述

还是断点后往下调试就行,具体步骤我就不贴了。

在这里插入图片描述

总之,加密是先 o = l(a) ,再 d(x) , 不过需要注意 d(o) 是Promise 类型。

l 比较简单,d 是一段加密。
在这里插入图片描述
再具体就自己点进去看吧。
在这里插入图片描述
点进去,发现新大陆了。
在这里插入图片描述
加密在这个文件,拿出来自己测吧。
在这里插入图片描述


Verify

验证成功会返回 captchaToken。
在这里插入图片描述

一般验证参数错误,轨迹错误,返回350014 。


整体流程

在这里插入图片描述

点赞
  1. kaika1111说道:
    Google Chrome Windows 10
    大佬,轨迹验证怎么样过呢
    1. Lx Lx说道:
      Google Chrome Windows 10
      直接复制轨迹
  2. 开胃小菜说道:
    Google Chrome Windows 10
    加密文件里面好难啊,作者能不能分析下思路
    1. Lx Lx说道:
      Google Chrome Windows 10
      可以看这个 https://zhuanlan.zhihu.com/p/477781941

发表回复