某验四代滑块参数学习
## 某验四代滑块参数学习```
目标网址 aHR0cHMlM0EvL3d3dy5nZWV0ZXN0LmNvbS9hZGFwdGl2ZS1jYXB0Y2hhLWRlbW8=
```
选择的是这个
![在这里插入图片描述](https://img-blog.csdnimg.cn/07ccdb1f13af4230bbb25ede085a8b38.png)
### 1.抓包
https://gcaptcha4.geetest.com/load?captcha_id=
获取验证码相关参数captcha_id gct_path bg lot_numberpayload process_tokenpow_detail
slice
https://gcaptcha4.geetest.com/verify?captcha_id=
然后是根据上面获取到的参数进行拼接url,获取w参数(今天的主题)
和三代相比较,少了点击按钮的两个请求,主要做校验的地方就是 w 生成
### 2.开始寻找参数
点击verify链接,发现都是使用同一个js,估计和之前的差不多,点进去寻找w的unicode编码
"\u0077"
![在这里插入图片描述](https://img-blog.csdnimg.cn/b56a524c438649bf83dba69dc7cdb04d.png)
很幸运,找到了这个地方
![在这里插入图片描述](https://img-blog.csdnimg.cn/4f5cc1ff3ce84db6bdccb51d750d274e.png)
简单分析一下,r 使我们需要的参数,r在第一个地方被赋值,所以在r被赋值的地方下个断点,刷新当前页面,点击按钮,弹出验证码,开始滑动
![在这里插入图片描述](https://img-blog.csdnimg.cn/2845f3c3b32c4252ac9d84b663a5d2a9.png)
js断在了我们刚刚打的断点处
![在这里插入图片描述](https://img-blog.csdnimg.cn/a20ae6c3a07e4bba86f601e9011f0775.png)
查看该函数传入的值是什么
![!\[在这里插入图片描述\](https://img-blog.csdnimg.cn/a2ff948a790b45d48eed825616b11752.png](https://img-blog.csdnimg.cn/27bdeebdad5b4b7fa32b5e5bdf3d9048.png)
简直不可相信,滑块的轨迹居然是明文,感觉还不如三代了,这应该就是生成的w的明文了吧,
a的话看不出来是啥,那就看看 d[$_BHHHD(58)]) 是一个什么样的函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/554d687e1a7e40a6b022bacc00c4611f.png)
找到这个函数,在返回值return处下个断点,
![在这里插入图片描述](https://img-blog.csdnimg.cn/8a5aba98622d481783536a6ca8d4fd64.png)
打印返回的结果,发现o是bytes数组,a是一个长的16进制字符串,return返回的就是我们需要的w,看来就是o进行二次编码和a拼接到一起,形成了最后的w。我们的目标就是找到最开始的明文怎么变成o和a的,先看一下o怎么变成最后的样子吧。在o前面的函数打断点,开始调试。
![在这里插入图片描述](https://img-blog.csdnimg.cn/9a9f2f3bcb184effa1daa0129b9f9a19.png)
发现这里返回的结果和前面一摸一样
![在这里插入图片描述](https://img-blog.csdnimg.cn/13924527f78d46558cd4c975065e9ccd.png)
把这段js抠出来,修改一下,就有了最后的编码部分,重新刷新,看看o和a是怎么来的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/3f92e212668f4412b48a894c0300ddf1.png)
打上断点,先查看输入a输入的是n, o输入的是e,n,在控制台打印一下这两个参数是啥
![在这里插入图片描述](https://img-blog.csdnimg.cn/23c41ce91b2040dabc267c60b3bfcaf6.png)
又看到了熟悉的明文和很短的字符串n ,n是四个e()函数生成的,这里就不多说了![在这里插入图片描述](https://img-blog.csdnimg.cn/3769b4a1a59b4610bec9ddf6052214fd.png)
进入到a生成的地方,继续打断点
![在这里插入图片描述](https://img-blog.csdnimg.cn/4ae8f4e505f542b2854a2b45edecb2e9.png)
发现o的值随着while的执行在增大,可以把这方法抠出来,然后补确实的函数,不涉及window相关参数。这个和三代都一样。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7a692f22e0744dc880d978c89a543d9c.png)
最开始生成这个参数的地方可以明显看到dopublic,大家可以用正则或者ast把这些unicode,和数组的地方都替换成正常的字符串,就很容易发现一些简单的地方,我这里按照三代的思路,就没有做过多的处理。这个地方是一个rsa,你可以选择去扣代码,或者去找密钥。a的生成就到这里了。
```python
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数组的是生成,下断点
![在这里插入图片描述](https://img-blog.csdnimg.cn/b87902c6f6894d098349aa656fe1b355.png)
经过调试, s参数出现了一个熟悉的身影, iv
![在这里插入图片描述](https://img-blog.csdnimg.cn/e0f2e73ad9424058b21c837a87e82cb6.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/5b754da1feb3427893166960333f0fff.png)
同时这个c对象有一个encryptBlock函数,可以去百度搜索一下
![在这里插入图片描述](https://img-blog.csdnimg.cn/9cc54496fecb4af4bf078e3980ee0592.png)
发现了可能是rsa aes点进去前面的函数,发现了
![在这里插入图片描述](https://img-blog.csdnimg.cn/89d5633717174e3c88da412a832f6f3e.png)
翻译过就来就是就是aes常用的结果,key,iv(这里经过上一步调试iv是0000000000000000)填充模式等,a参数的生成就到这里了。这里的aes没有魔改,可以选择扣代码,或者自己写一个aes 。
w的生成就是这个样子,bytes_tohex(aes) + rsa
接下来是aes输入明文的相关参数分析,
![在这里插入图片描述](https://img-blog.csdnimg.cn/87a46fa4427e45928eb5e07afe588887.png)
第一个setleft是缺口距离,之后的track是滑块轨迹,passtime 消耗的时间,还有一些load请求返回的参数进行拼接,这里面有一个不定时切换的参数就是 svze 第二个红框,这个参数和值是有另外一个js文件返回的,他会相应的动态改变。em是一些鼠标操作的一些判定。
今天的分析就到这里了,最后附上一张图片。
![在这里插入图片描述](https://img-blog.csdnimg.cn/fe930966afed470abc34f7ea910594b0.png)
测试100次,成功89次,可以使用了。希望大家点点关注,后续还会分享点选,和其他的一些验证码分析学习。
参考链接
https://www.52pojie.cn/thread-1162893-1-1.html 谢大佬 实现了 准确率98%{:301_993:} guyinqian 发表于 2022-5-10 19:40
@#sky# 所以说这样子绕过验证可以直接忽略图片上缺口的位置直接成功跳过验证吗?还是说仍然需要通过识别图 ...
肯定不能绕过啊,人家这么大的产品怎么可能有这种漏洞,要识别缺口位置,模拟滑动轨迹,这个验证码对轨迹校验比较强 厉害厉害
跟着尝试做下 厉害了,收录 666, 有什么工具比较方便js反混淆的吗 各种滑块的原理应该大同小异吧,,,,,,
happyBread 发表于 2022-5-6 11:46
666, 有什么工具比较方便js反混淆的吗
ast 或者正则都可以 观摩大佬操作 那是真的牛啤