近期闲来无事,正好拿这个滑块验证码练练手,顺便打发打发时间

当我们进行网站查询时,会触发下面的验证码

Snipaste_2023-11-19_21-18-57.jpg
Snipaste_2023-11-19_21-18-57.jpg

我们先进行F12抓包,看一下他的请求参数

Snipaste_2023-11-19_21-19-32.jpg
Snipaste_2023-11-19_21-19-32.jpg

Snipaste_2023-11-19_21-20-26.jpg
Snipaste_2023-11-19_21-20-26.jpg

通过抓包发现,只有pointJson是一个未知的加密参数,我们对该参数进行base64解密,发现解码失败,这时我们可以确定这是一个加密参数。

Snipaste_2023-11-19_21-20-58.jpg
Snipaste_2023-11-19_21-20-58.jpg

全局搜索关键字,找到两处结果,进去看一看,打上断点

Snipaste_2023-11-19_21-21-22.jpg
Snipaste_2023-11-19_21-21-22.jpg

再次点击提交,嘿!您猜怎么着,断住了!

Snipaste_2023-11-19_21-21-35.jpg
Snipaste_2023-11-19_21-21-35.jpg

这个地方是一个三元运算符,前面的secretKey我们确定这是已知的,所有直接看后面的内容就行,后面两个东西长得一样啊,那我们直接看前面的

直接把鼠标放上去,看看里面是个嘛

Snipaste_2023-11-19_21-22-06.jpg
Snipaste_2023-11-19_21-22-06.jpg

进去一看,是个很简短的加密。

Snipaste_2023-11-19_21-22-32.jpg
Snipaste_2023-11-19_21-22-32.jpg

我们先打印一下看看这个y算出来是什么东西,顺便把里面的也打印一下

Snipaste_2023-11-19_21-23-39.jpg
Snipaste_2023-11-19_21-23-39.jpg

Snipaste_2023-11-19_21-24-05.jpg
Snipaste_2023-11-19_21-24-05.jpg

x后面这个变量能在上面看到,是个计算后的值,说的是,获取移动坐标,然后去掉px,下面的t是去掉px之后,乘除一下。

Snipaste_2023-11-19_21-24-30.jpg
Snipaste_2023-11-19_21-24-30.jpg

Snipaste_2023-11-19_21-24-43.jpg
Snipaste_2023-11-19_21-24-43.jpg

Snipaste_2023-11-19_21-24-49.jpg
Snipaste_2023-11-19_21-24-49.jpg

好了,现在我们知道y是怎么算的,也知道里面的参数是什么意思,咱直接给他抠出来看看怎么个事。
我这里直接把w()替换成crypot-js了,这里明眼人都知道,猜都不用猜,这地球还有别的加密函数长这样吗{:1_918:}

Snipaste_2023-11-19_21-25-14.jpg
Snipaste_2023-11-19_21-25-14.jpg

把刚才的参数放进去,打印一下看看对不对

Snipaste_2023-11-19_21-30-54.jpg
Snipaste_2023-11-19_21-30-54.jpg

嘿,算对了,是不是一毛一样

你以为到这里就完了吗,就光分析这个那也忒简单了。
连传的参数都分析出来了,这不模拟一下,不就浪费了吗

我们都知道滑块验证码需要把图片移动到对应的缺口上,通过刚才的分析,需要提交的参数只有x轴的坐标。

Snipaste_2023-11-19_21-40-46.jpg
Snipaste_2023-11-19_21-40-46.jpg

F12看一下验证码图片,发现原图和接口传来的尺寸不一样,我们需要先对获取图片的接口进行base64解码,然后修改尺寸

Snipaste_2023-11-19_22-12-24.jpg
Snipaste_2023-11-19_22-12-24.jpg

Snipaste_2023-11-19_22-12-30.jpg
Snipaste_2023-11-19_22-12-30.jpg

然后我们使用opencv中的模板匹配来,确定缺口的位置

Snipaste_2023-11-19_21-47-07.jpg
Snipaste_2023-11-19_21-47-07.jpg

然后运行一次看看

Snipaste_2023-11-19_21-48-13.jpg
Snipaste_2023-11-19_21-48-13.jpg

嘿,匹配上了!

最后整合一下代码,查询一下阿里的域名

Snipaste_2023-11-20_15-47-26.jpg
Snipaste_2023-11-20_15-47-26.jpg

Snipaste_2023-11-20_15-48-10.jpg
Snipaste_2023-11-20_15-48-10.jpg

嗯,只能说一毛一样。