今天我们分析一下这个站的登录。按常规先抓包。

1.png (277.33 KB, 下载次数: 2)
下载附件
滑动验证码
2025-9-4 20:12 上传
可以看到点击登录后有滑动验证码。
因此我们需要先分析滑动验证码。
抓包可以看到发送了五个可疑参数。

2.png (46.41 KB, 下载次数: 2)
下载附件
2025-9-4 20:13 上传
然后返回了滑动的底图,缺口,以及一个token

3.png (32.25 KB, 下载次数: 1)
下载附件
2025-9-4 20:13 上传
通过搜索,captchaId这个参数是在login.min.js?t=20240708这个js中写死的。我们固定即可。_是个时间戳。
那么我们只需要看chptchKey,token,iv即可。查看栈,可以看到有两个可疑的函数

4.png (46.85 KB, 下载次数: 2)
下载附件
2025-9-4 20:13 上传
我们点进去,可以看到代码里面有赋值操作。但是代码都混淆了。

5.png (161.04 KB, 下载次数: 2)
下载附件
2025-9-4 20:13 上传
虽然混淆了,但是别慌。我们先下断点。

6.png (111.44 KB, 下载次数: 1)
下载附件
2025-9-4 20:14 上传
我们在相同的地方打上三个断点,刷新。
可以看到'captchaKey': _0x422ded;_0x422ded = _0x4c771b(_0x4e0309 + _0x11dbad())_0x4e0309是个获取时间戳,_0x11dbad()产生了一个UUID,两个进行了字符串拼接后,传入_0x4c771b函数进行运算。

7.png (142.26 KB, 下载次数: 1)
下载附件
2025-9-4 20:14 上传
'token': _0x4e0309;_0x4e0309 = _0x4c771b(_0x4e0309 + _0x3fedba + _0x589b78 + _0x422ded) + ':' + (parseInt(_0x4e0309) + 0x493e0) || ''token也是先用_0x4e0309获取时间戳,_0x3fedba是固定的captchaId这个参数,_0x589b78是固定的slide字符串,_0x422ded就是上面计算的captchaKey值。
这些值拼接后继续传入_0x4c771b函数进行运算。
最后在进行一次拼接。
'iv': _0x4015b8[_0x5876dc(0x33f)];_0x4015b8['IMAGE_VERIFY_TAG'] = _0x4c771b(_0x3fedba + _0x589b78 + Date[_0x5876dc(0x3d5)]() + _0x11dbad())iv值跟token算法大同小异,看起来复杂,其实就是不同字符串拼接。
也是传入_0x4c771b函数进行运算。因此顺着_0x4c771b函数往下扣就行。
扣完就一百来行代码。结果如下

8.png (27.18 KB, 下载次数: 2)
下载附件
2025-9-4 20:14 上传
有了参数及验证码地址。
接下来就可以识别了。直接用ddddocr就行。
识别率基本百分百。
[Python] 纯文本查看 复制代码det = ddddocr.DdddOcr(det=False, ocr=False)
with open('hk.jpg', 'rb') as f:
target_bytes = f.read()
with open('yzm.jpg', 'rb') as f:
background_bytes = f.read()
res = det.slide_match(target_bytes, background_bytes)
接下来。我们再看验证码的发包。

9.png (26.86 KB, 下载次数: 2)
下载附件
2025-9-4 20:15 上传
可以看到只有两个参数,一个是IV,我们上面已经解决了。
还有个textClickArr参数,按参数字面意思,只传入了一个X的坐标值。
为了保险。我们看一下调用。
照常点进调用栈。直接就出来了。

10.png (146 KB, 下载次数: 2)
下载附件
2025-9-4 20:15 上传
我们都打上断点。
跟下去可以看到这么一个代码i ? e : l ? t.call(e) : u ? t(e[0], n) : o核心是t(e[0], n)这个函数,获取了滑块的最左边的坐标

11.png (420 KB, 下载次数: 2)
下载附件
2025-9-4 20:15 上传
然后进行了运算
parseInt(_0x12404f) - _0x4015b8[_0x58cb01(0x25c)][_0x58cb01(0x30c)]_0x12404f
就是x的值,
减去_0x4015b8[_0x58cb01(0x25c)][_0x58cb01(0x30c)]
生成的8,就是发送的参数因此我们在ddddocr中识别的x坐标减去2。

12.png (8.11 KB, 下载次数: 1)
下载附件
2025-9-4 20:16 上传
接下来发送成功后获取到valIDAta值,随着login登录添加到post参数中data就行了。
因为登录没有加密。我们就不看了。
直接看验证码,可以看到10次发送,成功率百分之百。

13.png (326.62 KB, 下载次数: 2)
下载附件
2025-9-4 20:17 上传