推荐.NET教程: ASP.NET C# 开发环境 Ajax教程 控件开发 统计报表 数据库 Web服务 安装部署 CommunityServer NHibernate DataGrid/GridView 实用代码 VS2005
示例源码 MVC/三层 SqlHelper 入门源码 开源 CMS Ajax/Atlas C#.net 毕业设计 源码 经典代码 商业 本站作品 持久层 随书源码 WebService 英文/汉化 Asp.net2.0

阿牛·乐园

每天进步一点点

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  80 随笔 :: 14 文章 :: 389 评论 :: 13 引用
  以前写过一个通过对比验证码数字Region的方法,来识别背景单一且字体大小单一的验证码数字。写成了后,发现很多网站,都只是在得到验证码图片时来改变验证码,这样的话,如果我们只访问图片一次,然后每次都用这个数字(人眼看)提交,就可以达到一直破解网站用户名密码的效果。
        最主要的,发现移动公司也有这样的问题存在,真是不应该呀。不过,但是限制了密码重试次数,还好还好。
  在此,希望大家引以为戒呀。

  至于“不是让计算机看的,是让人看”,没有别的意思,只是希望人能够看得懂。必竞验证码是用来对付计算机识别的。
posted on 2007-03-26 17:18 阿牛 阅读(4285) 评论(42)  编辑 收藏 网摘 所属分类: ASP.netC#其它语言

评论

#1楼  2007-03-26 17:55 Cat Chen      
有些人做系统不是为了安全,而是为了应付客户或者上司,让别人看到——您说要的验证码功能已经做好了,那就行了。
  回复  引用  查看    

#2楼  2007-03-26 17:59 随风流月      
@Cat Chen
精妙。
  回复  引用  查看    

#3楼  2007-03-26 18:08 ☆聊ゾ聊☆      
汗,偶的程序也有这个漏洞,赶紧改改,谢谢楼主。
  回复  引用  查看    

#4楼  2007-03-26 18:21 fhmsha [未注册用户]
看不懂你在说什么
如果我们只访问图片一次,然后每次都用这个数字(人眼看)提交...

提交一次验证码就变了啊...搞什么笑
  回复  引用    

#5楼  2007-03-26 19:09 join [未注册用户]
没有看明白,希望LZ说明白点。
  回复  引用    

#6楼  2007-03-26 19:37 Microshaoft      
encrypt(随机验证码+时间戳)
存到内存cookie

  回复  引用  查看    

#7楼  2007-03-26 19:43 东吴居士      
看的不明白,望赐教!!
  回复  引用  查看    

#8楼  2007-03-26 20:30 Jeffrey Zhao      
@fhmsha
lz的意思就说,只有获取图片时才变。提交验证码时是不变的。
  回复  引用  查看    

谢谢lz,这个漏洞真的很严重。
修改程序去。
  回复  引用    

#10楼  2007-03-26 22:06 阿毅 [未注册用户]
嘻嘻嘻,俺经常利用此“漏洞”。
修补方法:验证提交的验证码之后更新(或清除)session保存的验证值。
  回复  引用    

#11楼  2007-03-26 23:17 天轰穿      
恩,不错,登陆后立刻清楚session中的值
  回复  引用  查看    

#12楼  2007-03-26 23:47 若寒      
可真没注意这个问题!
我就用登陆后立即清除Session的值这个方法.
谢谢!!!
  回复  引用  查看    

#13楼  2007-03-26 23:55 风云.NET      
AreYouHuman 博客园里还把验证码的值写到这个里面啊..

也是不要写识别代码就可以搞定了.这样别人写一些自动留言机就很容易了
  回复  引用  查看    

#14楼  2007-03-26 23:56 风云.NET      
不过,偶一般是不会说这种事情,留着以后攻击别人时候用.
  回复  引用  查看    

#15楼  2007-03-27 00:17 YAO.NET℡      
咦.还果然没注意这个问题.


  回复  引用  查看    

#16楼  2007-03-27 08:48 亚历山大同志      
验证码用过后就要销毁这个和上完厕所要擦屁股是同理可得:}
  回复  引用  查看    

#17楼  2007-03-27 12:22 生米煮成稀饭      
有道理啊!!厉害
  回复  引用  查看    

#18楼  2007-03-27 12:46 Jeffers Yuan      
@亚历山大同志
验证码用过后就要销毁这个和上完厕所要擦屁股是同理可得:}

厉害,精P
  回复  引用  查看    

#19楼  2007-03-27 13:20 skyover [未注册用户]
我怎么没太看懂呢,智商太低了。
  回复  引用    

#20楼  2007-03-27 14:31 yuuhhe      
不知道各位有没有用到OneNote2007中的“复制图片中的文本”的功能?
其实就是一个OCR的实现,可一旦在程序中调用,那破解可就……
  回复  引用  查看    

#21楼  2007-03-27 21:40 Cat Chen      
@yuuhhe
所以验证码一般都要防OCR的,例如扭曲的字体、迷彩的背景。
  回复  引用  查看    

#22楼 [楼主] 2007-03-28 10:20 阿牛      
我写了一个,不过是随机的字体,随机的字体大小,随机的旋转.
http://www.cnblogs.com/evlon/archive/2007/03/26/688695.html
  回复  引用  查看    

#23楼  2007-03-28 11:19 民文 [未注册用户]
还是不明白楼主是什么意思啊?将验证码放进SESSION里,第一次提交的时候就是刚生成的验证码,以后每次提交的时候SESSION里的值实际上是上次生成的验证码,只有在页面呈现完毕才将SESSION里的值更新为新生成的验证码.这里有个执行先后顺序的差别. 但是对于楼主说的是什么意思楼主能不能再解释一下啊?谢谢啊
  回复  引用    

#24楼  2007-03-28 12:18 Tiger!      
百度的不知道有这个问题吗?

  回复  引用  查看    

每次把session清空就可以了
  回复  引用    

#26楼  2007-03-29 12:45 Summer [未注册用户]
这是个问题,引以为戒。
  回复  引用    

#27楼  2007-03-29 16:46 美文宝车      
终于看明白
  回复  引用  查看    

#28楼  2007-03-29 18:03 东吴居士      
看明白了。不过这个太傻x了。。
哪个网站这么做的?给我看看,哈哈
一般提交post的时候会refresh那个image的。。。
  回复  引用  查看    

#29楼  2007-03-29 20:55 qiyue [未注册用户]
还不明白说什么?
  回复  引用    

#30楼  2007-03-30 11:15 sunyc [未注册用户]
@东吴居士
看清楚再说话
  回复  引用    

#31楼  2007-03-30 15:01 laifangsong      

看了几个评论才明白楼主说什么。

确实,这个问题以前一直没注意。
提交完清除session中的值就可解决问题了。
  回复  引用  查看    

#32楼  2007-03-30 15:18 Amnoh      
但是限制了密码重试次数,还好还好
-----------------------------
这是关键,说明人家已经防范了,不一定非得每次都换个新图吧?

像百度的,更是连着点“看不清”那个链接,刷N次,也还是那个码,只是换换样式,这样也成的。
  回复  引用  查看    

#33楼  2007-04-04 09:21 上海 [未注册用户]
阿牛 :
你的表达能力真差!这么多人不明白你说的是什么意思!你也不能出来解释下啊?
  回复  引用    

#34楼  2007-04-06 21:47 iyond [未注册用户]
@上海
一些网站的验证码是在你请求图片的时候才更换一下.如果我们只是使用普通的浏览器进行表单的提交,可能没有问题,因为每次提交完成后,浏览器都要将页面上的图片重新请求一次.这样验证码就变了.
但是如果我自己写一个程序,只是向表单的交数据,而不去请求其它的东西(包括验证码图片)的话,就不会引发验证码更新,我就可以一直使用这个验证码重复提交.
  回复  引用    

#35楼  2007-04-11 17:11 涛仔28      
@iyond
请求验证码以后服务器程序要清掉这个session的验证码重新生成的嘛
  回复  引用  查看    

我有个问题,验证码保存在 session 中,那不是可以在客户端获取吗?那我通过程序每次从session中获取验证吗,不就是一定能匹配上?
  回复  引用    

#37楼 [楼主] 2007-05-11 08:58 阿牛      
@neil.zhang
客户端不能取Session中的东西,因为Session只保存在服务器上,且只是用了唯一的客户端标识(SessionId)来索引.


  回复  引用  查看    

#38楼 [楼主] 2007-05-11 08:59 阿牛      
@上海
Iyond同事解释的好.哈哈.
  回复  引用  查看    

#39楼  2007-06-22 23:36 蓝色奇迹      
出售高级验证码识别引擎全部Delphi源码,可准确识别新浪动网百度淘宝QQ等多种复杂验证码

输出为一个标准DLL,可供VB,VC,Delphi,C#.NET,VB.NET等多平台调用,其中用到了Transym OCR识别引

擎(国外最强悍的商业OCR),另外加上独具特色的边缘检测字符分离、旋转倾斜纠正和通用字符匹配算

法(无论字体和大小),使得该引擎对于像新浪、动网、淘宝、QQ、百度等多种验证码均有理想的识别

率,是目前国内非常出色的验证码识别引擎。附详细的调用实例和代码注释。价格500元。提供售后技术

支持,协助客户调试代码。联系作者QQ:631753663

效果怎么样一试就知道。
DEMO下载 (电信)***/soft/advocr.rar
     (网通)cnc.purejoy.cn/soft/advocr.rar
  回复  引用  查看    

#40楼  2008-05-13 21:12 Mon [未注册用户]
target="_blank"
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-03-26 17:25 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: