文章目录

  • 前言
  • 一、触发滑块
  • 二、参数分析
  • 三、总结



前言

目标网站:aHR0cHM6Ly9tbXMucGluZHVvZHVvLmNvbS9sb2dpbi8=


一、触发滑块

多次点击登入后,就会出现这个滑块了

普通滑块验证码 java 滑块验证码js逆向_javascript


二、参数分析

先来看看出验证码的这个接口

普通滑块验证码 java 滑块验证码js逆向_javascript_02

参数还是蛮多的,其中crawlerInfo这个就是pdd系列的,也就是请求头中的anti-content,这篇文章主讲滑块,这个参数就不聊了,主要是补环境,网上也有开源的

普通滑块验证码 java 滑块验证码js逆向_python_03


普通滑块验证码 java 滑块验证码js逆向_python_04

fingerprint就是浏览器指纹了,password是密码的rsa加密

普通滑块验证码 java 滑块验证码js逆向_验证码_05

riskSign是账号密码+时间戳的组合md5

普通滑块验证码 java 滑块验证码js逆向_滑块_06


普通滑块验证码 java 滑块验证码js逆向_滑块_07

然后请求下这个接口,拿到了verifyAuthToken

普通滑块验证码 java 滑块验证码js逆向_javascript_08

然后就是获取验证码图片的接口,这里出了个新的参数captcha_collect,是鼠标轨迹的加密,这个接口可以写空

普通滑块验证码 java 滑块验证码js逆向_python_09


普通滑块验证码 java 滑块验证码js逆向_验证码_10


然后就拿到了图片的信息,然而返回的并不是图片的base64编码,是经过加密的

普通滑块验证码 java 滑块验证码js逆向_验证码_11


图片解密在这个位置,接出来后就是base64编码的信息

普通滑块验证码 java 滑块验证码js逆向_python_12

之后就是搞下缺口位置,方法很多,网上自行copy,然后就是看验证滑块的接口了

这里captcha_collect是需要的轨迹加密信息

verify_code这个东西很神秘,是换算后的缺口位置

普通滑块验证码 java 滑块验证码js逆向_验证码_13

然后轨迹加密的位置在这,h(p(JSON[u("0x1a")](r))),这里p函数是gzip加密,然后h是AES加密

普通滑块验证码 java 滑块验证码js逆向_javascript_14


普通滑块验证码 java 滑块验证码js逆向_滑块_15


普通滑块验证码 java 滑块验证码js逆向_验证码_16

入口参数r是这么些东西,包含轨迹信息,浏览器指纹等

普通滑块验证码 java 滑块验证码js逆向_滑块_17


captcha_collect基本上就能搞定了,之后就是这个verify_code,在这里生成的

普通滑块验证码 java 滑块验证码js逆向_python_18

参数都能搞定了,最后发下请求看看,基本上都是可以过得

普通滑块验证码 java 滑块验证码js逆向_javascript_19

普通滑块验证码 java 滑块验证码js逆向_python_20


三、总结

最后总结下,这个轨迹是不校验的,主要是缺口位置,直接opencv模板匹配出来的是不对的,需要经过一定换算,然后这个verify_code,跟轨迹里的最终位置也是不同的,也需要一点的换算。