安全性测试入门 (五):Insecure CAPTCHA 验证码绕过 (4)

Impossible级别主要的改动在于,移除了High级别中多余的g-recaptcha-response参数判断,而只采用CAPTCHA本身的验证结果进行判断,并且要求输入原始密码。这样要绕过验证码就基本不可能了。

3. 验证码机制测试

话题再回到测试,如本文开头所说,验证码的主要作用就是防止所谓的"机器人" - 即计算机自动程序。

在验证码机制推行起来之前,许多知名网站都经受过“机器人”注册的攻击。由于“机器人”可能在短时间内大量调用系统功能,因此经常导致服务器宕机以及垃圾数据。

我们之前提到过的字典式破解等攻击方式,也可以通过验证码进行防御。

不过现在随着人工智能的发展,验证码的破解,图形解析的技术门槛越来越低,图形类验证码的破解已经不是很难的事情了。

而且通过此文,我们也应该知道,现在各大系统的验证码一般通过接口调用实现,而一般来说验证码的处理逻辑则是独立的。而这个处理逻辑则是安全验证和测试的主要要点,如果逻辑设计不合理,验证码就会变成徒劳。如本文所示,其实我们完全没有去处理验证码破解的问题。

题外话

对于UI自动化而言,我们也会遇到验证码的问题。那么UI自动化中应该如何处理验证码呢。

要知道做为一种图灵测试机制,验证码防御的就是类似selenium这样的计算机自动化程序,即“机器人”。我们做UI自动化有没有必要去引入验证码破解机制予以破解?

个人认为,没有这个必要。

如果你使用自动化的手段破解了验证码,那么只能说明你们系统的验证码是废物!要更新升级!直到你破不掉为止。

破解验证码需要额外的代码量和技术手段,费力不讨好

图形验证码也许现在的技术手段可以破解,但是类似谷歌的第三代captcha验证,现在还没有完美的破解手段。

所以,如果UI自动化中遇到验证码怎么办?

其实很简单,与开发协商将测试环境调为测试模式,即关闭验证码功能即可。验证码功能可以单独予以测试。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgzyy.html