某哪儿机票JS解密(4)--暴力破解滑动验证码

前几天已经完成了去哪儿的所有解密,本想着去哪儿这个系列可以结束了

但是当我把脚本部署到docker上时,发现selenium居然滑不动滑动验证码!改了很久都不行,一气之下,直接怼他的验证码JS了。

我们先来看下请求

   

验证码请求

基本是这样的,然后我前几天不是找不到JS嘛,突然想起以前好像在某个地方可以在查看这个请求调用了哪个JS。


没错就是这里

点进去下断点开始调试


生成加密参数的地方

自己通过调试得出的结论

自己通过调试得出的结论

    

自己通过调试得出的结论

大概就是这样,调试了一波发现他的轨迹数组先加密了一次,然后再把所有的data再加密一次得出一大串的J5EE啥的


所有需要加密的数据

里面的session找了我半天,一开始还以为js生成的,找了很久很久很久都没有头绪,我就想着用网页自带的session去请求试下,结果这个session在查票接口返回需要验证码的响应里找到了,激动。


里面还有些规则

一开始我直接通过这些数据生成data发现根本通不过,直接返回code:2(通过多次请求发现,code:0的时候是成功,code:1是轨迹错误或者使用过期数据,code:2应该参数不正确)

加密参数有问题

根据和正确的数据对比发现了如下结论


轨迹数组是 时间戳后5位 ;鼠标x坐标;鼠标y坐标;时间间隔

endTime后五位时间戳要和最后一个轨迹的时间戳对上

firstTaptime也是,其他的时间戳没有限制

除了这个还有其他的规则,找了我好几个小时,一度怀疑加密方法是不是写错了,后面经过验证得出了结果,终于对上了,成功通过验证码。

需要的有偿联系企鹅 MjgyMjgwMjcy(拒绝白嫖)

这里贴出一个我百分百通过滑动验证码的方式。因为他是直接一条线划过去的


滑动验证码

所以用一个通过验证的轨迹然后按他的方式加上其他参数,那肯定就也可以通过(也可以多加点轨迹,防止被识破)


生成轨迹的代码

到现在还没失败过,一条轨迹怼到底。


去掉前五位时间戳的轨迹

自行加上当前时间戳后五位就行了,注意时间间隔

成果展示


成功通过滑动验证码

只需python+node 环境即可部署docker了。第一次硬怼出滑动验证码的JS还是比较开心的。

你可能感兴趣的:(某哪儿机票JS解密(4)--暴力破解滑动验证码)