一、分析网站

jquery 滑块式验证码插件 滑块验证码原理_滑块


不难发现,主要的获取信息流程分为三步,第一步:获取滑块验证码,第二步:验证滑块验证码的缺口,第三部:提交返回后的信息,获取真正的数据二、主要流程处理

现在开始第一步,获取滑块验证码:

查看请求发现,请求头中出现了token参数

jquery 滑块式验证码插件 滑块验证码原理_jquery 滑块式验证码插件_02


这时候查找JS中的内容,发现Token的产生位置:

jquery 滑块式验证码插件 滑块验证码原理_滑块_03

可以观察出来,Token的产生是一个Ajax请求,这时候开始打断点,进行跟踪

jquery 滑块式验证码插件 滑块验证码原理_python_04


逐步跟踪后发现,通过一个POST请求,发送了authkey、以及timestamp参数,authkey的来源是由w.authKey(A, g, t)函数产生的

t是当前的时间戳,现在需要知道 A g的内容

控制台打印

jquery 滑块式验证码插件 滑块验证码原理_jquery 滑块式验证码插件_05


可以发现两个参数都是test这时候我们进入这个函数

jquery 滑块式验证码插件 滑块验证码原理_验证码_06


可以看到

jquery 滑块式验证码插件 滑块验证码原理_滑块_07


authkey函数的主要作用就是将A g I 拼接起来 经过md5后进行输出

这时候authkey参数也就完成了。

这时候查看一下请求的url 这个参数

jquery 滑块式验证码插件 滑块验证码原理_验证码_08


请求的地址也出来了,这时候token参数的生成也就完成了

python代码实现

jquery 滑块式验证码插件 滑块验证码原理_python_09


可以正常生成现在可以开始分析第一个请求,通过携带Token,获取到了

jquery 滑块式验证码插件 滑块验证码原理_jquery 滑块式验证码插件_10


这是一个滑块的验证码 包含了背景图,高度差,缺口图,以及uuid,

过程中的滑块验证码缺口识别略过。

开始分析第二个请求

请求中携带了

jquery 滑块式验证码插件 滑块验证码原理_滑块_11


其中key就是我们的uuid value就是需要滑动的距离(比较人性了,没有滑动轨迹那个鬼东西)成功后会返回

jquery 滑块式验证码插件 滑块验证码原理_python_12


记住此处的params

现在开始分析第三个请求(获取数据):

jquery 滑块式验证码插件 滑块验证码原理_滑块_13


请求中需要了三个参数 token sign uuid

token就是我们最开始生成的token

uuid就是在第一步的时候生成的uuid

sign就是刚刚的params,通过携带这三个参数,就可以获取真正的数据了

jquery 滑块式验证码插件 滑块验证码原理_滑块_14


编写python代码 进行验证

jquery 滑块式验证码插件 滑块验证码原理_jquery 滑块式验证码插件_15


完成、仅做分析使用