热门关键字:   网站安全  黑客攻防  安全漏洞  系统安全  网络安全

验证码在网站安全中的作用

发布时间:2010-10-30 11:50文章来源:未知文章作者:K4ShiFz 点击次数:
摘要:验证码不是给用户输着玩的,曾几何时 因为恶意破解、刷票、论坛灌水等,无数网站被迫关闭,这时验证码技术才应运而生。 没有验证码保护的网站是一个有缺陷的网站,因为明显你给了黑客暴力猜解的机会。 下图是学校某处的后台,试问这样的验证码有什么用,不是...

验证码不是给用户输着玩的,曾几何时因为恶意破解、刷票、论坛灌水等,无数网站被迫关闭,这时验证码技术才应运而生。

没有验证码保护的网站是一个有缺陷的网站,因为明显你给了黑客暴力猜解的机会。

下图是学校某处的后台,试问这样的验证码有什么用,不是图片,破解程序立刻读取出来了(图片也可以二值化识别,这个水平就高了)。

也许程序员们笑了:我不用常见密码,你不知道我用户名和密码的长度、组成字符,你暴力到猴年马月啊。

呵呵,确实是这样,但我只是说你给了黑客们这样一个机会,不是吗?我们不猜密码了,如果是留言、论坛的话,可能导致数据库被刷爆。

人与人的差距不在于能力,而是态度、思维方式。

然后我们来看这个学校这个网站:


为了方便转账,管理,多数人校园卡密码=建行卡密码,不是也没关系,就猜校园卡密码吧:

密码组成 6 个数字,所有的组合应该是

10*10*10*10*10*10=1000000 ,当然这是最多,通常是不到就猜完了。

我测试过,脚本程序1秒大概能猜9个(C++等语言多线程可能更快,但其实快不很多,因为消耗主要在网络延时上),

所用时间就是 1000000/9/3600/24=1.28 天,一天多一点。

这个消耗是普通个人计算机都可以承受的,实测成功,花了几个小时而已,这和对方密码有关。

给个php exp(Perl exp的原理一样):

<?php
set_time_limit(0);error_reporting(0);

function checkpass($i)
{发包,判断
}

for($i_1=0;$i_1<=9;$i_1++)
{
    for($i_2=0;$i_2<=9;$i_2++)
    {
        for($i_3=0;$i_3<=9;$i_3++)
        {
            for($i_4=0;$i_4<=9;$i_4++)
            {
                for($i_5=0;$i_5<=9;$i_5++)
                {
                    for($i_6=0;$i_6<=9;$i_6++)
                    {
                        $pass=$i_1.$i_2.$i_3.$i_4.$i_5.$i_6;
                        checkpass($pass);
                    }
                }
            }
        }
    }
}
?>

修补方法:加上图片验证码


 

标签分类: 脚本安全

上一篇:六个防止SQL注入式攻击建议
下一篇: upfile上传目录限制脚本执行的突破