热点

暴力破解验证码软件

时间:2010-12-5 17:23:32  作者:时尚   来源:焦点  查看:  评论:0
内容摘要:去年冬天,我帮一个做电商的朋友看后台日志。他的登录接口在凌晨三点被撞了四千多次,验证码图片请求量飙到平时的二十倍。对方用的是一个叫“CaptchaBreaker”的开源工具,GitHub上三千多星,专

去年冬天,暴力我帮一个做电商的破解朋友看后台日志。他的验证登录接口在凌晨三点被撞了四千多次,验证码图片请求量飙到平时的码软二十倍。对方用的暴力是一个叫“CaptchaBreaker”的开源工具,GitHub上三千多星,破解专门干一件事:把图片验证码里的验证字符抠出来。

这东西原理不复杂。码软传统图片验证码就是暴力一张PNG,上面歪歪扭扭写了四个字母数字。破解暴力破解软件先用OpenCV做二值化,验证把彩色背景干掉,码软剩下黑白像素。暴力然后找连通区域,破解把每个字符单独切出来。验证切完归一化成统一尺寸,喂给一个训练好的CNN模型。模型结构很浅,三四层卷积,全连接输出36个类别(26个字母加10个数字)。整个流程跑一次不到50毫秒。

关键在训练数据。作者爬了某验证码服务商的十万张样本,人工标了三天。后来发现根本不用标——用同一套生成算法批量造图,标签自动就有了。这招叫“合成数据”,在验证码圈子里是公开的秘密。你防御方用代码生成验证码,我攻击方就用同样的代码生成训练集。矛和盾用的是同一块铁。

我试过那个工具。拿朋友网站的验证码截图扔进去,十张里能过七张。剩下三张失败的原因很随机:有的字符粘在一起切不开,有的被干扰线穿过了关键笔画。但攻击者不追求百分百。七成成功率意味着每秒钟能试十几次,一小时就是四万次。朋友后台看到的四千次只是冰山一角,大部分请求被WAF拦了,没进日志。

更麻烦的是打码平台。暴力破解软件只是前端,后端连着人工打码服务。机器识别不了的图片,自动转发给东南亚的廉价劳动力,一张一分钱。我见过一个平台的后台截图,同时在线两千多个打码工人,每人面前一个网页,图片刷出来就敲键盘。这种“人机混合”模式把成功率拉到95%以上。你加再复杂的干扰线也没用,人眼能认。

防御方也不是没招。行为验证码是条路——让你拖滑块、点文字、转图片。但道高一尺魔高一丈,某头部厂商的滑块验证码去年被爆出用Selenium模拟鼠标轨迹就能过。轨迹生成算法写得很细,加速度、抖动、停顿都模仿真人。我看了那段代码,注释里写着“参考了人类手部运动模型”。

说回朋友那个站。我建议他把验证码换成短信验证,成本上去了但省心。他算了一笔账:一条短信五分钱,一天多花两百块,比被撞库后用户流失划算。后来他真换了。上个月我问他还有没有攻击,他说日志里只剩零星几个IP在试,估计是脚本没更新,还在找图片验证码的接口。

这事让我想明白一个道理:验证码从来不是用来防机器的,是用来提高机器成本的。当破解成本低于防御成本,这堵墙就塌了。CaptchaBreaker的作者在README里写得很直白——“本工具仅供安全研究”。但GitHub的fork列表里,一半的仓库改个名字就挂上了黑产论坛。代码没有立场,用代码的人有。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap