某验四代滑块参数学习

某验四代滑块参数学习

目标网址 aHR0cHMlM0EvL3d3dy5nZWV0ZXN0LmNvbS9hZGFwdGl2ZS1jYXB0Y2hhLWRlbW8=

选择的是这个
在这里插入图片描述

1.抓包

https://gcaptcha4.geetest.com/load?captcha_id=
获取验证码相关参数 captcha_id gct_path bg lot_number payload process_token pow_detail
slice
https://gcaptcha4.geetest.com/verify?captcha_id=
然后是根据上面获取到的参数进行拼接url,获取w参数(今天的主题)
和三代相比较,少了点击按钮的两个请求,主要做校验的地方就是 w 生成

2.开始寻找参数

点击verify链接,发现都是使用同一个js,估计和之前的差不多,点进去寻找w的unicode编码
“\u0077”
在这里插入图片描述
很幸运,找到了这个地方
在这里插入图片描述
简单分析一下,r 使我们需要的参数,r在第一个地方被赋值,所以在r被赋值的地方下个断点,刷新当前页面,点击按钮,弹出验证码,开始滑动
在这里插入图片描述
js断在了我们刚刚打的断点处
在这里插入图片描述
查看该函数传入的值是什么
![在这里插入图片描述](https://img-blog.csdnimg.cn/a2ff948a790b45d48eed825616b11752.png

简直不可相信,滑块的轨迹居然是明文,感觉还不如三代了,这应该就是生成的w的明文了吧,
a的话看不出来是啥,那就看看 d[$_BHHHD(58)]) 是一个什么样的函数
在这里插入图片描述
找到这个函数,在返回值return处下个断点,
在这里插入图片描述

打印返回的结果,发现o是bytes数组,a是一个长的16进制字符串,return返回的就是我们需要的w,看来就是o进行二次编码和a拼接到一起,形成了最后的w。我们的目标就是找到最开始的明文怎么变成o和a的,先看一下o怎么变成最后的样子吧。在o前面的函数打断点,开始调试。
在这里插入图片描述
发现这里返回的结果和前面一摸一样
在这里插入图片描述
把这段js抠出来,修改一下,就有了最后的编码部分,重新刷新,看看o和a是怎么来的。
在这里插入图片描述
打上断点,先查看输入a输入的是n, o输入的是e,n,在控制台打印一下这两个参数是啥

在这里插入图片描述
又看到了熟悉的明文和很短的字符串n ,n是四个e()函数生成的,这里就不多说了在这里插入图片描述
进入到a生成的地方,继续打断点
在这里插入图片描述
发现o的值随着while的执行在增大,可以把这方法抠出来,然后补确实的函数,不涉及window相关参数。这个和三代都一样。
在这里插入图片描述
最开始生成这个参数的地方可以明显看到dopublic,大家可以用正则或者ast把这些unicode,和数组的地方都替换成正常的字符串,就很容易发现一些简单的地方,我这里按照三代的思路,就没有做过多的处理。这个地方是一个rsa,你可以选择去扣代码,或者去找密钥。a的生成就到这里了。

import rsa
from binascii import b2a_hex

e = '010001'
e = int(e, 16)

n = '00C1E3934D1614465B33053E7F48EE4EC87B14B95EF88947713D25EECBFF7E74C7977D02DC1D9451F79DD5D1C10C29ACB6A9B4D6FB7D0A0279B6719E1772565F09AF627715919221AEF91899CAE08C0D686D748B20A3603BE2318CA6BC2B59706592A9219D0BF05C9F65023A21D2330807252AE0066D59CEEFA5F2748EA80BAB81'
n = int(n, 16)

pub_key = rsa.PublicKey(e=e, n=n)
print(b2a_hex(rsa.encrypt(b"0fe524023c414bb5", pub_key)))

接下来是o数组的是生成,下断点
在这里插入图片描述
经过调试, s参数出现了一个熟悉的身影, iv
在这里插入图片描述
在这里插入图片描述
同时这个c对象有一个encryptBlock函数,可以去百度搜索一下
在这里插入图片描述
发现了可能是rsa aes 点进去前面的函数,发现了
在这里插入图片描述
翻译过就来就是就是aes常用的结果,key,iv (这里经过上一步调试iv是0000000000000000)填充模式等,a参数的生成就到这里了。这里的aes没有魔改,可以选择扣代码,或者自己写一个aes 。
w的生成就是这个样子,bytes_tohex(aes) + rsa

接下来是aes输入明文的相关参数分析,
在这里插入图片描述
第一个setleft是缺口距离,之后的track是滑块轨迹,passtime 消耗的时间,还有一些load请求返回的参数进行拼接,这里面有一个不定时切换的参数就是 svze 第二个红框,这个参数和值是有另外一个js文件返回的,他会相应的动态改变。em是一些鼠标操作的一些判定。
今天的分析就到这里了,最后附上一张图片。

在这里插入图片描述
测试100次,成功89次,可以使用了。希望大家点点关注,后续还会分享点选,和其他的一些验证码分析学习。

参考链接
https://www.52pojie.cn/thread-1162893-1-1.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Watermelon,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值