ZydmxhZ 发表于 2023-8-11 16:54

九卦阵验证码通过流程

本帖最后由 ZydmxhZ 于 2023-8-14 15:46 编辑

PS: 侵删 侵删 侵删
1. 拿到验证码的url, 解析出request_code
2. 通过request_code, 请求ext_api/page_data接口, 拿到验证码基础信息. 主要包含session和sign两个长字符串
    2.1 sign是一段加密过的 包含环境检测/控制流的/很长/很大的 一串js代码.解密sign要用到session, 目前检测的环境不多, sign解密成js代码并且执行成功后可以拿到一个关键的变量 _f 的值.
3. 通过request_code, 请求ext_api/spiderindefence/info接口, 拿到验证码的两张图片信息, 以及一个很重要的hint值(乱码字符串, 解密九宫格图片的顺序时要用到)
4. 识别第一张图片文本, 拿到要连接哪个颜色; 识别第二张图片, 拿到 哪个坐标(位置)是哪个颜色
    4.1 文本图片 可以考虑使用ddddocr, 可以勉强识别, 成功率较低
      
   
    4.2 九宫格图片 识别
      4.2.1 服务器下发的九宫格原图, 顺序/大小都是混淆过的. 页面最终显示的验证码 是在客户端 先用js解密出九宫格图片的排序顺序, 然后用canvas重新画出的一张图片.
      4.2.2 需要扣一下 解密九宫格图片排序的js代码; canvas画图的代码用python的PIL库复现一下就行(一点儿也不难:curse:)
      4.2.3 重组后的九宫格图片, 还要注意调整分辨率 (不然会导致下面4.2.4中坐标读取错误)
      4.2.4 每个位置的球的颜色识别, 本质就是用PIL库读取固定点的RGB值就可以了, 判断RGB在哪个颜色范围, 就属于哪个颜色. (9个球的位置都是固定的)
      4.2.5参考原图:
               重新排序以及重置分辨率后:
5. 生成滑动轨迹. 手动收集, 每个位置的球都手动连一次, 要注意收集到的轨迹数组的长度, 太长不行, 太短也不行. (不然就得重新收集, 一点儿也不麻烦{:1_909:})
6. 加密各个参数, 提交验证(这部分有很多要注意的点, 先写还记得的)
    6.1 behavior和_token, 使用的同一个加密算法, 加密两轮, 但是传入的参数有区别, 注意区分就好了. 加密结果要用到上面解出来的_f值
    6.2 _token主要包含 两个重要的时间戳, 几段不完整的鼠标移动轨迹数组和一个点击事件生成的小数组, 以及一些简单的基础环境信息
    6.3 behavior主要包含 九宫格图片与各个元素的相对位置坐标, 点击次数, 以及滑动轨迹(有长度限制)
    6.3 时间戳部分, 在正确的位置生成正确的时间戳! 注意每个有关联的时间戳之间的差值. 多刷新几次浏览器, 拿到一个大概的差值, 在代码里随机生成一下
    6.4 轨迹部分, 注意每个轨迹数组是怎么来的. 不同的轨迹数组, 但是可以相互印证, 对不上就鸡鸡!

图片顺序的解密, js代码的解密, 轨迹的加密代码 都不难. 扣完代码, 再加上补环境的代码, 也就400+行!
更多的是 每个节点生成的时间戳 和 各个轨迹数组的验证!

kayakz 发表于 2023-8-17 12:05

本帖最后由 kayakz 于 2023-8-17 12:07 编辑

分享一下模型,识别文字+点位置+颜色,识别成功率百分之99+

https://wwsk.lanzouk.com/isNpY15mal6b

密码:52pj

knightlc 发表于 2023-8-14 09:58

贴主牛啊,谢谢分享思路,这种验证码原理大多数是服务器生成结果发给前端重新绘制,难点就是在混淆代码中调试找到js加密解密代码。

ZHuanR 发表于 2023-8-12 14:08

新技能已get√

柯柯砰砰 发表于 2023-8-12 15:44

请问这个是做什么用的

gumuqi 发表于 2023-8-12 16:24

学到了,👍

SYWZWL 发表于 2023-8-12 20:03

牛逼呀,兄弟

hdydy 发表于 2023-8-13 09:56

感谢分享

weiyanli 发表于 2023-8-13 12:03

果然是大神,66666

cyxnzb 发表于 2023-8-13 14:21

一直以来验证码这块感觉都是攻防在不断进步的

17638122331 发表于 2023-8-13 15:13

{:1_893:}加油 加油

yh2023 发表于 2023-8-13 21:26

谢谢分享
页: [1] 2
查看完整版本: 九卦阵验证码通过流程