乐趣区

关于逆向工程:快手滑块验证码分析

老文章:《快手滑块验证码剖析 2021-10-21》

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

当初双验证接口,别离是 /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。


整体流程

欢送关注《pythonlx》公众号,可获取群聊二维码!

有问题可私信或留言!

退出移动版