验证码就是每次访问页面时随机生成的图片,内容一般是数字和字母(更厉害点的还有中文),需要访问者把图中的数字字母填到表单中提交,这样就有效地防止了暴力破解。验证码也用于防止恶意灌水、广告帖等。
溯雪是早年大名鼎鼎的黑客神器“刀光雪影”之一,其功能就是暴力破解表单,那时很是很流行的。但是后来有了验证码这个东西,几乎把溯雪推向了死路。但是真的完全是死路了吗?本文给你答案。
对于验证码机制,网上的攻击手法都是利用数学方法分析图片,当然我们不能老是跟着别人的思路走,那样就没创意了。
想想验证码的思路,就是每次登陆的地方访问一个脚本文件,该文件生成含验证码的图片并将值写入到Session里,提交的时候验证登陆的脚本就会判断提交的验证码是否与Session里的一致。
问题出现了,在登陆密码错误之后,我们不去访问生成验证图片的文件,那么如果Session中的验证码没有被清空,此时验证码就是跟上次的一样,辛辛苦苦构建的防暴力破解就形同虚设了。
PowerEasy2005的管理员登陆页面就是个很好的实例,只要我们把首次访问的验证码辨认出来,以该会话Cookie值不断提交就可以实现暴力破解了。图中就是用溯雪破解的结果。
类似的情况还有PJBlog2的登陆验证等等。
利用验证码的漏洞还可以实现DOS(还有刷投票之类的,呵呵),比如CSDN博客系统,回复的验证码就存在这个问题,所以你可以抓包不断提交。
这次动网BBS做得很好,密码错误之后Session中的验证码值被置空且每次检查验证码的时候先检查是否为空。所以如果要修复这种漏洞就参考动网的办法吧。
http://www.cnxhacker.com/Article/hacker/study/200612/7493.html