js逆向-360牛盾验证码逆向分析

声明

本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!

如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!

插句个人内容:本人最近正在找工作,工作城市:广州。如果有合适的机会,希望有大佬可以内推,感激不尽。
js逆向马马虎虎,app会弱一些。感兴趣的大佬可以私信本人要简历。
js逆向-360牛盾验证码逆向分析_第1张图片

参数分析

此次的目标依然十分明确,通过算法过掉验证码。
这个验证码是我无意中发现的,也比较小众,难度不是很大,所以拿来分析一下。
页面长这个样子
js逆向-360牛盾验证码逆向分析_第2张图片

F12抓包看一下情况
js逆向-360牛盾验证码逆向分析_第3张图片

这个请求包含了背景图片和滑块图片的url,以及需要的token。
然后就是拖动滑块进行验证。
js逆向-360牛盾验证码逆向分析_第4张图片

再观察一下请求体内容。
js逆向-360牛盾验证码逆向分析_第5张图片
参数实际上校验了tokenwtoken的值是上个请求返回的,那么也就是需要将w的值分析出来就可以了。

定位加密函数与本地复现

全局搜索token,可以轻松的定位到w的位置。
js逆向-360牛盾验证码逆向分析_第6张图片

m则在上方已经定义了,重新断点,观察参数。
js逆向-360牛盾验证码逆向分析_第7张图片
js逆向-360牛盾验证码逆向分析_第8张图片

比较关键的是offsetArr和position,分别对应滑动数组和滑动距离,其他参数测试下来均可写死,不影响。
n.default则是JSON.stringify。
image.png

参数c是token,l则是固定值。

进入y函数。
js逆向-360牛盾验证码逆向分析_第9张图片
典型AES加密,本地直接套用crypto-js库,将混淆部分直接手动解密。
本地复测发现结果一致,那么这个加密就完成本地复现了。

加密部分完成之后还有轨迹和位置没有找到,接着向上追栈。
js逆向-360牛盾验证码逆向分析_第10张图片

此时位置已经当做参数传了进来,所以需要接着向上找。
js逆向-360牛盾验证码逆向分析_第11张图片

js逆向-360牛盾验证码逆向分析_第12张图片
滑动距离=实际距离*比例
滑动距离识别有很多方法可以实现,比如打码平台和本地ocr。
使用ddddocr发现效果也不错,需要注意图片的实际大小。
js逆向-360牛盾验证码逆向分析_第13张图片

至于offsetArr的特征可以看到固定首尾中间生成随机数,然后将数组变成字符串就大功告成了
js逆向-360牛盾验证码逆向分析_第14张图片

验证结果

结果当然也是成功的。
js逆向-360牛盾验证码逆向分析_第15张图片

你可能感兴趣的:(js逆向,javascript,python,node.js)