快手/快手小店滑块验证码逆向分析
url = 'https://captcha.zt.kuaishou.com/rest/zt/captcha/sliding/kSecretApiVerify'
开始JS逆向
c.ai(“0x31”) 的值是验证接口中,加密前的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 是一段加密。
想知道具体就再点进去
点进去,发现加密处
要JS 源码:QQ:165554127