360牛盾滑块验证码破解方法¶
本文用于说明绕过 360 平台的牛盾滑块验证码,在舆情采集是会遇到此验证
前提准备¶
- 牛盾滑块验证码示例:验证页面示例
- 自写框架
ayugespidertools
: 以来其中的滑块缺口位置识别方法,当然使用ddddocr
也是可以的 chrome
浏览器:用于调试
过程分析¶
清理
ck
缓存等,然后完成一次验证(验证不需要成功,随便滑一下滑块就行),过滤请求包,看需要模拟哪些请求。
由上图,或自己调试下,可知比较重要的有(主要的就是上图圈起的请求):
getconf
这个是整轮验证包含的请求,但是此请求并没有set-cookie
或中间参数的生成,不用理会vercode/get
- 这个请求会生成滑块图,背景图和
token
信息 - 这个请求依赖
Q_UDID
参数 vercode/check
:验证包- 其
token
参数为上步骤返回 w
参数由环境指纹和轨迹等信息生成,这个值如果自己生成的逻辑错误,会有提示(好像是:w
值错误),这个值如果根据错误的滑块缺口生成,也会有提示(result error
)。
Q_UDID 生成逻辑¶
直接搜索
Q_UDID
关键字即可定位,自己还原还是扣代码都行,都非常简单:
w 值生成逻辑¶
直接根据
vercode/check
的请求堆栈信息定位即可,当然直接搜索关键字慢慢定位也行
解释:
w
值由m((0, n.default)(p), c, u)
生成,有逆向经验的就可直接看出其实就是m(JSON.stringify(p), c, u)
,这就比较好懂了- 重要的就是
m
函数(aes cfb
模式加密),c
和u
用于生成key
和iv
,p
就是加密参数,其中就包含轨迹信息
进入
m
函数
可以知道,这就是 aes
的 cfb
模式的加密,剩下的就不说了
总结¶
运行成功图如下:
完。