网址:
https://my.ztgame.com/plugin/pwd
然后来看一下这个滑块验证码是如何通过的。
打开F12:
当我把滑块拉到这个位置的时候,产生了一次请求:
请求返回的内容如下:
jQuery112309196920250839282_1574913077019({"code":0,"token":"1npfs7s1a68cf2bf3g06vzmp7gjfz06j89ofpx7lg7ksl9qpv9p7aoupa1o1m8i7kbc93xaebmx35ba4zq38yxtggv473ancdj3yoj3g13guf6gbbg5kneg88i0kqhkawcv1a96nmakejooy6tu735h6s0dcvxjqceji4fwct5ipafbllui356p"})
可以大致估计出来,这个请求是验证码校验成功的请求返回了token值。
那么,来看看这个请求的参数有哪些:
参数值之中,有三个参数暂时不知道:
但是一般的滑块验证码,轨迹参数是必不可少的。
input参数:
通过尝试,发现这个验证码没有轨迹参数,上面的input仅仅是将滑动的距离进行了base64的加密。
代码如下:
import base64 distance = 70 a = base64.b64encode(str(distance).encode()).decode() print(a)
写个test试一下看看:
巧合的是,
以拖动70的距离来进行测试的话,返回的结果为:
这样input参数就有了。
nonce参数:
一番查找之后发现nonce这个参数在这里。
然后回到上面的问题,只剩下距离的计算了,那在计算距离的时候,肯定第一个想到的就是先拿回来验证码图片:
查找之后,验证码图片的链接被找到:
然后在拿回来验证码图片之后,经过计算距离,然后用base64对距离进行加密,之后传入参数,即可通过。
写完代码之后,检测一下,输出结果为:
token值拿到了。