尝试访问

http://mdsec.net/feedback/39/

img001  注解  一些应用程序有意提供破解CAPTCHA的代码路径,以便于某些授权自动进程使用。通常,在这些情况下,无须提交相关参数名就可以避开CAPTCHA。

2.自动破解CAPTCHA拼图

理论上,计算机可以破解大多数CAPTCHA拼图;实际上,许多主流拼图算法都以这种方式被破解。

对于包含扭曲单词的标准拼图,破解拼图的过程如下:

(1)删除图像噪声;

(2)将图像分割成单个字母;

(3)识别每个部分包含的字母。

采用最新技术,计算机能够相当有效地删除图像噪声,并识别已被正确分割的字母。这时,将图像分割成字母是最重要的挑战,特别是在字母重叠并且高度扭曲的情况下。

对于可以轻松分割成字母的简单拼图,可以使用某种自行编写的代码来删除图像噪声,并将文本传送到现有的OCR(光学文字识别)库中来进行识别。对于非常难以分割的复杂拼图,各种研究项目已经成功破解了一些知名Web应用程序的CAPTCHA拼图。

对于其他类型的拼图,则需要针对拼图图像的特点采用不同的方法。例如,对于要求识别动物或物体方向的拼图,则需要使用实时图像数据库,以便于在多个拼图中重复使用。但是,如果这个数据库非常小,攻击者就可以通过手动破解数据库中的拼图来达到成功实施攻击的目的。即使为了使每一幅重复使用的图像在计算机看来会有所不同,应用程序对图像应用了噪声和其他扭曲,但攻击者通常会采用模糊图像散列和彩色直方图比较,将给定拼图中的图像与已手动破解的图像进行匹配。

Microsoft的Asirra拼图使用一个包含数百万幅猫和狗图像的数据库,这些图像来自现实世界中可领养的宠物目录。我们在下一节将讲到,在庞大的经济利益的刺激下,即使这样的数据库也可能会被攻击者快速破解。

值得注意的是,在所有这些情况下,要有效破解CAPTCHA控件,攻击者并不需要完全准确地破解拼图。例如,即使某个攻击仅正确破解了10%的拼图,但该攻击仍然能够非常有效地实施自动安全测试,或传送垃圾邮件(视具体情况而定)。通常,与手动攻击相比,即使自动攻击需要提交十倍以上的请求,后者实施起来仍然更加快捷和轻松。