使用MD5加密密码登录任意账号思路
最近百度网盘的账号密码泄露了,密码全部以MD5方式加密。有些人说MD5是不可逆的,危害不大。这篇文章就来分析一下有了账号的MD5密码,黑客可以做些什么?
首先,来讨论一下获得账号的MD5加密密码的三种主要途径:一是自己入侵网站的数据库,如果数据库中的密码用MD5加密了,自然就获得了MD5加密密码;二是从各种途径获得的泄露出来的网站数据库,比如这次的百度网盘数据库;三是知道明文密码,使用MD5加密工具进行加密。
现在假设已经获得了账号的MD5密码,由于MD5是不可逆的,但可以通过账号密码对照库进行破解。所谓的对照库,其实就是别人事先把收集的密码或者是黑客字典生成的密码进行加密,然后分别把加密前和加密后的密码一一对应起来存入数据库。然后,只要进行数据库查询,或者简单理解为搜索数据库中的MD5加密数据,就能找到对应的明文密码。
当然,这种方法不是万能的,有些强密码可能不在收集之列,所以无法破解。这时黑客就可以换一种思路。简单的说,现在网站验证登陆的方法,主要是对比用户在登陆框中输入的密码和数据库中对应的账号密码,如果一致,就登陆成功。而如果数据库中的密码是经过MD5加密的,这种对比的过程不会解密数据库中的MD5密码(因为MD5是不可逆的),而是用MD5加密用户输入的密码,这样就相当于对比两组MD5加密密码,一致则登录成功。
通过这一原理,我们就可以通过以修改cookie的方式,欺骗网站进行登录。这里,来解释一下cookie。说到cookie,不得不提一下session。这两种技术都可以用于验证用户登录,不同的是,session的数据是存储在服务器,当浏览器关闭后自动注销;而cookie是存储在客户端,可以长期保存。目前大多数网站为了用户登录方便,大多采用了cookie验证的方式。这样,就可以通过修改存储在本机的cookie,在不破解MD5密码的情况下,登录网站。大致过程是先注册一个账号登录此网站,获得网站的cookie模版,然后把里面的ID和密码字段替换成相应的ID和MD5加密密码。这样,下次登录时,网站会对照你本机cookie中的MD5密码和数据库中的MD5密码,如果密码没有修改过,则登录成功。
Add a Comment
要发表评论,您必须先登录。
服务器发送cookie时可以将密码与站点的密钥一起md5加密组成cookie内容,这样也是一个可以防止伪造的方法
这个方法不错,不过对于有些开源程序,如discuz论坛程序就不适用了。因为可以通过分析源代码,获取密钥或生成密钥的算法,进而破解。