旧文:《快手滑块验证码分析 2021-10-21》重读过程,发现官网有一些更新。目前的双重验证接口分别为/rest/zt/captcha/sliding/kSecretApiVerify和/rest/zt/captcha/sliding/verify。不过这两个接口是独立验证的,目前两者没有任何关系。(无论验证过哪个API都可以使用。)本文主要讲新的验证接口kSecretApiVerify。kSecretApiVerifykSecretApiVerify是最近新加入的,参数为verifyParam。如何断点就不详细介绍了,可以参考老文。c.a[i("0x31")](r)的值为验证接口加密前的verifyParam。c.a[i("0x31")]相当于urlencode。可以将r输出到控制台。经分析,这些参数的含义如下:captchaSn滑块验证码信息bgPicWidth原始背景图片WidthbgPicHeight原始背景图片HeightcutPicWidth原始滑块图片WidthcutPicHeight原始滑块图片HeightcaptchaExtraParam浏览器指纹信息gpuInfo浏览器GPU信息轨迹滑动轨迹relativeX滑块X轴拖动distancerelativeYsliderY轴高度captchaSn、bgPicWidth、bgPicHeight、cutPicWidth、cutPicHeight是根据captchaSession获取的验证码配置信息。获取接口为/rest/zt/captcha/sliding/configcaptchaExtraParam,gpuInfo可以在配置信息中设置一个固定值relativeY,relativeX需要自己计算。我们处理的时候需要根据拖动距离生成的轨迹。轨迹有行为检测,代码生成的统一轨迹无法通过验证,所以手动复制。verifyParamkSecretApiVerify接口提交的参数是加密的,也就是说明文的verifyParam需要加密。还是断点后往下调试比较好,具体步骤我就不贴了。简而言之,加密首先是o=l(a),然后是d(x),但需要注意的是d(o)是Promise类型。l比较简单,d是一段加密。只需单击并亲自查看。单击并发现一个新大陆。加密在这个文件里面,自己拿出来测试一下。如果验证成功,Verify将返回captchaToken。一般验证参数错误,跟踪错误,返回350014。整体流程---欢迎关注《pythonlx》公众号,获取群聊二维码!有问题欢迎私信或留言!
