人人都恨验证码——那些恼人的图片,显示着你在登陆某网站前得输入的文本。设计验证码的目的是,通过验证你是真实的人来避免电脑自动填充表格。但是随着深度学习和计算机视觉的兴起,现在验证码常常易被攻破。
加vx;tanzhouyiwan 免费的Python学习资料一套
我拜读了 Adrian Rosebrock 写的《Deep Learning for Computer Vision with Python》。在书中,Adrian 描述了他是怎样用机器学习绕过纽约 E-ZPass 网站上的验证码:
Adrian 无法接触到该应用生成验证码的源代码。为了攻破该系统,他不得不下载数百张示例图片,并手动处理它们来训练他自己的系统。
但是如果我们想攻破的是一个开源验证码系统,我们确实能接触到源代码该怎么办呢?
我访问了 WordPress.org 的插件频道,并搜索了“验证码”。第一条搜索结果是 Really Simple CAPTCHA,并且有超过一百万次的活跃安装:
最好的一点是,它是开源的!既然我们已经有了生成验证码的源代码,那它应该挺容易被攻破的。为了让这件事更有挑战性,让我们给自己规定个时限吧。我们能在 15 分钟内完全攻破这个验证码系统吗?来试试吧!
重要说明:这绝不是对 Really Simple CAPTCHA 插件或对其作者的批评。该插件作者自己说它已经不再安全了,建议使用其他插件。这仅仅是一次好玩又迅速的技术挑战。但是如果你是那剩余的一百多万用户之一,也许你应该改用其他插件 :)
挑战
为了构思一个攻击计划,来看看 Really Simple CAPTCHA 会生成什么样的图片。在示例网站上,我们看到了以下图片: