目前入侵网站使用最广泛的方法就是注入攻击了,寻找到注人点,猜解表名、字段名,继而猜解出管理员的密码,然后登录后台,获取webshell。可以说,获取管理员的密码已经成了入侵过程中极重要的一步了。对于获取到的密码大致有两种形式,一种是明文存储的,对于明文的密码,直接登录后台就可以了;另一种则是使用MD5散列加密存储的,对于这种密码,入侵者则是拿到在线MD5猜解网站上来进行查询,如果对方庞大的密码数据库中存有该密码的话,则相应的密码明文就会显示出来。那么,我们是否有什么方法让我们的密码不被破解吗?答案当然是肯定的,我们只需要给自己的论坛打上一个补丁就可以了。
1.DVSBS安装补丁
在安装补丁前,我们要注意的是,只有新安装的论坛才能打上这个补丁,因为毕竟是最为关键的MD5加密部分,如果你的论坛早已经安装好使用一段时间了,那么则是不适台打补丁的(准确地来讲,应该是不能击打这个补丁)。
解压DVBBS补丁的压缩包,然后将MD5.ASP文件替换掉DVBBS论坛下的INC文件夹里的MD5.ASP即可。接下来使用同样的方法把DVBBS7.mdb数据库替换到DATA目录里的同名文件。安装已经初步完成,耿认密码为admin888。如果想要自己亲手做一下加密方式个性化修改,那么到INC目录下用记事本打开刚刚复制进去的MD5.ASP文件。
找到第34行,根据提示,我们把FunctionNumber等于的那个值可以修改成任意一组八位的八进制数,也就是说每一位数不得超过八,一共八位。比如,我把数字写成了23587641。
这个很简单,我们只要会使用记事本就可以自行修改。一定要记住了我们所写的这八个数,接下来我们要利用MD5密码生成工具,在补丁包里有一个叫做Admin散列运算器.Exe的文件,运行之后把我们刚才写的八位的八进制数填到里面去,然后点击确定。程序将自动帮助我们计算出默认密码admin的散列,我们可以把它复制下来。接着,使用Access打开DVBBS的数据库,把算出来的散列代码填入Dv_User表中的Username所对应的admin的UserPassword列中的项目,替换掉原来的密码就可以了。
我们关闭Access,我们就可以把源程序放到IIS中去执行了。因为DVBBS没有安装程序,所以我们只能手动去更新它的补丁,像这类没有安装程序的论坛安装此补丁的方法与上述过程是一样,因为我们的MD5.ASP补丁文件是通用的(包括很多国外的ASP论坛也适用)。
2.BBSXP安装补丁
讲完了DVBBS,我们再来给BBSXP打补丁。相对来讲,给BBSXP论坛打补丁要比DVBBS好打,因为BBSXP论坛本身具有自己的安装程序,也就不需要手动去计算管理员的密文,不需要使用ACCESS修改数据库了。
同样的解压补丁包,把MD5.ASP直接替换原来INC目录下的MD5.ASP文件即可,然后放入IIS中执行安装即可。这种自带安装程序的ASP论坛或者聊天室等程序安装此补丁都是使用这种方法。
3.原理
说到原理,其实非常简单:MD5一共分为四种打散方式:F、G、 H、I,正常顺序算下来应该经历16次F运算、G运算、H运算和I运算,总共加起来是64次运算,那么我们打乱它的正常运算顺序,就可以得到完全不同的散列。
我先在这64次运算的前后分别加入一句For i=1 To 8,这样就产生了8次循环,我又在For循环和64次运算之间插入Select Case Mid(FunctionNumher,i,1)一行,并适当地每隔8行放下一个Case,最后写上一句End Select结束了选择结构。选样运算的流程就可以按照用户所写的FurlctionNumber而走,用户可以产生16777216种不同的流程,这对于想要破解散列的人来说,几乎是不可能完成的任务,因为破解者一没有你的流程,二没有强大的计算机,所以从理论上来讲,这种设计是绝对安全的。