简单说说cloudflare的Turnstile与5s盾的事情吧

这几天没来看到站长把reCAPTCHA换成Turnstile又换成reCAPTCHA。

然后又有坛友说CF的五秒盾过不去。

##### 其实原因都是一样的

就是cloudflare的验证都是用的一个域名:`challenges.cloudflare.com`

***不信你把这个域名拦截掉试试***

5183717619d27e1102d6e3d02d874753.png![5183717619d27e1102d6e3d02d874753.png](https://s.rmimg.com/2024/02/28/5183717619d27e1102d6e3d02d874753.png)

然后你会发现5s盾过不去了。


-----

然后试试Turnstile,发现Turnstile也加载不出来。

Turnstile Demo
https://vote.zzdx.gay/api/vote/20/voteUrl?optionId=0


-----

然后你看看这个网址的国内访问情况就知道了
7bdd4b8e375a83058b13ea57d6b6b441.png![7bdd4b8e375a83058b13ea57d6b6b441.png](https://s.rmimg.com/2024/02/28/7bdd4b8e375a83058b13ea57d6b6b441.png)

challenges.cloudflare.com的速度决定了所有开”验证“网址的最低速度

手搓图片验证码最好用

@“[未知用户]”#p9503 有好的解决办法没有。真的头大。

@"[未知用户]"#p9504 你用那个 hCAPTCHA 也要人命,我宁可不用也不用那个哈哈。

@“[未知用户]”#p9504 事实上,现在的文字验证码都可以被现代计算机视觉ocr识别(如果大多数人也能看出来的)。

点汉字顺序验证码可以被深度学习(模型)扫描出来。

滑块验证码可以直接测距。

拼图验证码可以测边缘,用二次导数就可以求出。

转图的可以求平局灰度值(一般天空的灰度要小于地面的)


-----

完全看成本和技术。

@“James”#p9505 只要攻击者的平均花费多与你的就可以了。

对于cc,可以看看工作量验证码等等,这个不能防人机,但是能防大量无效请求。

人机验证码reCAPTCHA还有个国内机房的,recaptcha.google.cn的

其他的暂时没想到。工作量验证码名字忘了,反正不是wCAPTCHA。是另一个的,具体什么名字忘了。wCAPTCHA也能用,但是我没用过。


-----

我没反代过challenges.cloudflare.com,不知道反代是否可行

@“[未知用户]”#p9506

极验和网易搞得滑块验证,原理和ocr关系不大,是滑动速度曲线,正常人应该是先慢后快再慢

当时刚出的时候,写了个自动化破解自己玩,原理是模拟人手动拖动的抖动,效果拔群

后面人在知乎问能不能破解,结果有个老哥给出了类似的代码,那老哥就被抓进去了:xhj32:

@“[未知用户]”#p9512 依靠制定"规则"限制,永远不可能限制到的。消灭一个现象,都是靠新的技术进步淘汰的。"规则"只能辅助。

ddos,cc违法不是还有那么多人ddcc。还是CF能通过技术拦截,打CF的站才变少的。如果CF只有法务部,你看会怎样


-----

#### 想起一张图

c1f542df551046a38b6e5d1929e1790f.png![c1f542df551046a38b6e5d1929e1790f.png](https://s.rmimg.com/2024/02/29/c1f542df551046a38b6e5d1929e1790f.png)

@“主机玩家”#p9512 极验和网易的滑块验证,利用python的pillow模块的ImageChops.difference差值算法就能解决,提取出全图片和缺口图片。


-----

另外,模拟变加速也不是很难

```python def get_tracks(self, distance, seconds, ease_func): distance += 20 tracks = [0] offsets = [0] for t in np.arange(0.0, seconds, 0.1): ease = ease_func offset = round(ease(t / seconds) * distance) tracks.append(offset - offsets[-1]) offsets.append(offset) tracks.extend([-3, -2, -3, -2, -2, -2, -2, -1, -0, -1, -1, -1]) return tracks

def ease_out_quart(self, x):
return 1 - pow(1 - x, 4)
```

利用指数函数的性质就能模拟变加速。

@“[未知用户]”#p9565 大佬研究的很深,我只搞过二值化:xhj15:

很烦reCAPTCHA这类的

@“[未知用户]”#p9565 膜拜大佬,我没有阿