跳转至

360牛盾滑块验证码破解方法

本文用于说明绕过 360 平台的牛盾滑块验证码,在舆情采集是会遇到此验证

前提准备

  • 牛盾滑块验证码示例验证页面示例
  • 自写框架 ayugespidertools: 以来其中的滑块缺口位置识别方法,当然使用 ddddocr 也是可以的
  • chrome 浏览器:用于调试

过程分析

清理 ck 缓存等,然后完成一次验证(验证不需要成功,随便滑一下滑块就行),过滤请求包,看需要模拟哪些请求。

image-20221026164507519

由上图,或自己调试下,可知比较重要的有(主要的就是上图圈起的请求):

  • getconf 这个是整轮验证包含的请求,但是此请求并没有 set-cookie 或中间参数的生成,不用理会
  • vercode/get
  • 这个请求会生成滑块图,背景图和 token 信息
  • 这个请求依赖 Q_UDID 参数
  • vercode/check:验证包
  • token 参数为上步骤返回
  • w 参数由环境指纹和轨迹等信息生成,这个值如果自己生成的逻辑错误,会有提示(好像是:w 值错误),这个值如果根据错误的滑块缺口生成,也会有提示(result error)。

Q_UDID 生成逻辑

直接搜索 Q_UDID 关键字即可定位,自己还原还是扣代码都行,都非常简单:

image-20221026170054110

w 值生成逻辑

直接根据 vercode/check 的请求堆栈信息定位即可,当然直接搜索关键字慢慢定位也行

image-20221026170458983

解释:

  • w 值由 m((0, n.default)(p), c, u) 生成,有逆向经验的就可直接看出其实就是 m(JSON.stringify(p), c, u),这就比较好懂了
  • 重要的就是 m 函数(aes cfb 模式加密),cu 用于生成 keyivp 就是加密参数,其中就包含轨迹信息

进入 m 函数

image-20221026171124363

可以知道,这就是 aescfb 模式的加密,剩下的就不说了

总结

运行成功图如下:

image-20221026171242508

完。

回到页面顶部