快手滑块验证码分析
【快手滑块验证码分析】老文章: 《快手滑块验证码分析 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轴高度
获取接口是 /rest/zt/captcha/sliding/config
captchaExtraParam 、gpuInfo 可以设为定值
relativeY 在配置信息中有,relativeX 需要自行计算。
trajectory 我们处理时需要由拖动距离生成。
trajectory 有行为检测,代码生成的匀速轨迹并不能通过校验,手动去复制吧。
![快手滑块验证码分析](https://img.it610.com/image/info9/6c05ee97444d48f18093d05bb43d3f7f.jpg)
文章图片
verifyParam kSecretApiVerify接口提交的参数是加密的,也就是说需要对明文的verifyParam加密。
![快手滑块验证码分析](https://img.it610.com/image/info9/a0614124a3554987bcf008386435d780.jpg)
文章图片
还是断点后往下调试就行,具体步骤我就不贴了。
![快手滑块验证码分析](https://img.it610.com/image/info9/ee6216aa7194451eb95f8017873ecce5.jpg)
文章图片
总之,加密是先 o = l(a) ,再 d(x) , 不过需要注意 d(o) 是Promise 类型。
l 比较简单,d 是一段加密。
![快手滑块验证码分析](https://img.it610.com/image/info9/0ebdaa047e214db48e8f4f6f0c6e5c5a.jpg)
文章图片
再具体就自己点进去看吧。
![快手滑块验证码分析](https://img.it610.com/image/info9/fc1a2e259e2047dcbb4073f4b57b98d8.jpg)
文章图片
点进去,发现新大陆了。
![快手滑块验证码分析](https://img.it610.com/image/info9/aeb28dd1eabd4c1c9b53fd0530265f47.jpg)
文章图片
加密在这个文件,拿出来自己测吧。
![快手滑块验证码分析](https://img.it610.com/image/info9/1aad83dd6922470b83e97265c5642df0.jpg)
文章图片
Verify 验证成功会返回 captchaToken。
![快手滑块验证码分析](https://img.it610.com/image/info9/6082dc96111b479bb5e6f0bf15db5e70.jpg)
文章图片
一般验证参数错误,轨迹错误,返回350014 。
整体流程
![快手滑块验证码分析](https://img.it610.com/image/info9/4d9c3ffc12034f71a56078042260e9a6.jpg)
文章图片
---
欢迎关注《pythonlx》公众号,可获取群聊二维码!
有问题可私信或留言!
推荐阅读
- springsecurity|SpringBoot整合SpringSecurity带图片验证码简单实现
- jQuery.validator 验证手机号码与座机号码
- 新版Postman设置所有请求都自动带token登陆权限验证(Postman 版本9.10.0 )
- java|秒杀项目(二)之验证功能&&全局共享&&参数解析器
- 深度学习|pytorch计算分类验证精度acc1,acc5代码
- Angular如何在跨字段验证器中直接调用其它独立的验证器
- angular中关于表单动态验证的一种新思路
- 学习记录|393. UTF-8 编码验证
- 异步验证器单元测试的编写
- 利用Java+Selenium+OpenCV模拟实现网页滑动验证