漏洞概要
关注数(24)
关注此漏洞
漏洞标题:宇初网络验证码图片地址未做动态处理
提交时间:2012-05-22 14:38
修复时间:2012-05-22 14:38
公开时间:2012-05-22 14:38
漏洞类型:设计缺陷/逻辑错误
危害等级:低
自评Rank:3
漏洞状态:未联系到厂商或者厂商积极忽略
Tags标签:
无
漏洞详情
披露状态:
2012-05-22: 积极联系厂商并且等待厂商认领中,细节不对外公开
2012-05-22: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
验证码图片地址为纯静态,且获取验证码时使用了 HTTP 302,通过很简单的方法就能突破验证码的限制。
详细说明:
获取验证码时,浏览器会访问 GET http://api.yucmedia.com/script/image?key=&action=request。但是这里返回的是一个 HTTP Redirection。通过读取 Location 就可以得到验证码图片的地址。
通过分析,易知验证码图片地址到验证码文本存在一一对应的关系。这样就可以迅速建立一个验证码识别库。通过这个识别库来识别验证码,甚至都不用下载验证码图片。
另外,即使今后验证码图片地址被隐藏起来,通过验证码图片的匹配(这个很简单)也可以建立验证码识别库。因此每次返回的验证码图片需要做足够多的变形(例如杂点、变色什么的),但是针对现成图片做变形,要达到足够好的效果是很困难的。
漏洞证明:
昨天写了个问卷星的刷票机,发现了这个 bug。
这是我的验证码库的部分内容。
修复方案:
避免返回图片的真实地址。
基于文本进行足够复杂的图像变换。
版权声明:转载请注明来源 Fish@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
漏洞Rank:8 (WooYun评价)
漏洞评价:
评论
-
2012-05-22 14:49 |
xsser ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)
这个有点意思,那些基于验证码的广告系统,是不是会一样存在缺陷
-
2012-05-22 17:28 |
popok ( 普通白帽子 | Rank:117 漏洞数:24 | nothing)
呵呵,这种验证码我也是前几天第一次遇到,从制作上看,一般都是静态制作完成的图片,数量肯定没几张的,就算跳转URL会变,也可以从图片的文件指纹上去对应图片验证码,比如每张图片取前200字节,做成识别库,每次对比查找华为网盘也是这种验证码:http://login.dbank.com/accounts/newAccount?i=&r=
-
2012-05-22 17:29 |
popok ( 普通白帽子 | Rank:117 漏洞数:24 | nothing)
@xsser 上条竟然没AT到。。。。对了,话说wooyun为什么验证码第一次都是错误,要刷新一次才可以?
-
2012-05-22 17:30 |
xsser ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)
-
2012-05-22 17:33 |
popok ( 普通白帽子 | Rank:117 漏洞数:24 | nothing)
@xsser 可能我人品有问题吧,设置的验证码过期是多少毫秒
-
2012-05-22 17:34 |
蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)
-
2012-05-22 17:37 |
popok ( 普通白帽子 | Rank:117 漏洞数:24 | nothing)
-
2012-05-22 17:40 |
popok ( 普通白帽子 | Rank:117 漏洞数:24 | nothing)
@xsser @蟋蟀哥哥 果然如此,看来验证码get时需要带个rand了,不然这么多页面公用一个验证码,容易被新页面的覆盖更新掉
-
2012-05-22 21:19 |
一刀终情 ( 普通白帽子 | Rank:156 漏洞数:28 | PKAV技术宅社区-安全爱好者)
@popok 就是这个原因,之前也费解很久,好多人有这个疑惑,上次@水滴也问了
-
2012-05-23 02:51 |
Fish ( 路人 | Rank:8 漏洞数:1 | ...)
还有个小问题:由页面刚刚读出的验证码,需要等待 2 ~ 3 s 之后才能提交,否则有很大几率被报“验证码错误”。是因为获取一个验证码之后还要一段时间才能生效么?