纯属分析 无其他用途
先上网址 官网的在线体验页面
智能验证码体验_图片验证码_数美科技 (ishumei.com)
就搞一下 滑动验证码
首先是 第一个请求 类似注册本次验证码行为
https://captcha.fengkongcloud.cn/ca/v1/register
GET 请求
organization: RlokQwRlVjUrTUlkIqOg // 组织id
lang: zh-cn
appId: default
channel: DEFAULT
model: slide // 验证码类型
sdkver: 1.1.3
callback: sm_1640865091431
version: 1.0.3
data: {}
返回的有两张图 背景图 bg 和滑块图 fg 还有 神秘参数 k l rid 不知道又没有用 继续往下看
先随便划一下看看验证请求
https://captcha.fengkongcloud.cn/ca/v2/fverify
aw: UXcTRrZ9Oss=
xy: tZrj85QXFYE=
xp: AQSNGqey9JA=
organization: RlokQwRlVjUrTUlkIqOg
act.os: web_pc
dy: VwjI0tpz4Ls=
rid: 20211230195131423676c844cb4f2305
vk: oi7kWzhqhiU=
oe: 4eIG9gpg/oI=
ux: 15PasxRW77o=
ostype: web
gi: sOx+/TIO1J4=
protocol: 147
rversion: 1.0.3
lx: bKxCDLZXEH4=
callback: sm_1640865303902
sdkver: 1.1.3
dl: JEuzdY8i9I+qVaQ18tk7bNR81HzNJ6p3
nm: G5IEMsVqTPv2/QLuJkB/U0ivJ+Tx6q33EpXMQjERiPJo+5Wmk3B8Av8rK0PqdFIyjC9uoWyBCm4gy4Fkl2Yw6klL4PsMKD08QwNDRTttOqJ+Lwsz9ZspjZGCoFw+hlytkHdjaQ94mKJZ3JkHJBAz+ICKgBVyTIdO
好了 这么多参数 是遇到最多的验证码参数了
完全不知道什么意思 现在开始跟吧
这个 请求都是从 captcha-sdk 这个js文件发出的 看名字和验证码就有关
到底加密是不是在这个文件发生的 这就不一定了
在请求发生的第一个节点 打个断点先 然后 刷新一下验证码
这个参数是个script 标签 他的地址 就是上面验证时的请求
他是以scrip标签的形式 进行验证的 比较新颖 第一次见到
在这个函数的第一行 断下 看到 他的第一个参数 就是 script标签的地址 继续往上找
这种分析过程就是很无聊 只能慢慢看
可以找到 是这行 _0x120ad3 生产的 地址
_0x842e32(0x4a5) = 'default'
这就是请求的所有参数了 不容易啊 这刻好想发个表情吐槽一下
在向上找 就是 _0x4cbace 这个参数
继续向上可以找到这里 可以看到有明确的 几个值
断点 断在前面看一下
在这个方法第一行的时候 _0x524c4f 还是undefined呢 所以就是这里了
上面的方法都是生产一些没啥用的 版本 类型什么的
真正的加密参数 在这个变量里 还得找 淦。。
, _0x1fd7c4 = this[_0x207c7d(0x311)]() 它等价于
跟进这个方法看吧 不能高兴太早
应该是根据不同的 验证码类型 给参数不同的赋值
就是这里了
这里的 _0x3e0191(0x373) 就是 getEncryptContent
后面可以利用ast还原他
getEncryptContent 这个函数 就是两个入参 第一个 是 要加密的数据 第二个是 一个key
dl = 滑动距离 / 300
dy = 时间戳的差值
lx = 验证码宽度
xy = 验证码高度
nm 参数是这样的 可以猜测一下是浏览器环境
, _0x35e027 = _0x5e370c[_0x3e0191(0x4be)]
OH shit 又猜错了。。。
ux = runBotDetection() 验证环境问题
vk = 1
xp = -1
这个方法 结束后 还差 oe 和aw 找不到呢
aw = gi = "DEFAULT"
oe = 'zh-cn'
好了 就到这了 参数已经找全了 部分参数都可以写死的 不用生成 哈哈
应该已经很明了了
下篇文章 还原下 这些字符串置换