引言

最近学校某网站加了滑动验证功能,如下👇

滑动验证

这导致 之前的脚本 没法登录,所以来改进下脚本。

观察下

  1. 点击登录后获取图像 student/website/verify/image,响应1.完整图片,2.缺口图片,3.图片长宽,4.缺口所处y坐标

  2. 滑动结束后发送 student/website/verify/image/resultmoveEnd_X=xx.xxxxx&wbili=0.9333333333333333

  3. 发送登录请求

由此可见先要通过滑动验证,才能成功登录

思考下

经过多次尝试,变动的参数为moveEnd_X,这是按钮滑动的像素值

把图片丢进ps里面查看,灰色缺口rgb(192,192,192)

想了下有个计算方法:

  1. 根据缺口所在y坐标 y1

  2. 索引图片 y1 + 10px 所处的所有x坐标像素,得到缺口左右两边的坐标x1,x2

  3. 得出滑动值 x1 - (x2 - x1) / 2 + salt

salt = random.randint(-3, 3) + random.random()

然后在提交登录请求之前

  1. get img_url

  2. post result_url,moveEnd_X=xx.xxxxx&wbili=0.9333333333333333

点击查看 更新后的代码

总结

感觉做这些验证纯粹互相折磨,不如花时间优化其它功能。

后记

更新时间

2023/2/14

还是有一些失败的概率,等打卡人数再多起来...

到时候记录下失败的图片和数据再对比下吧......