许多网站也存在同样的问题,hash算法过于简单,导致轻易就能被破解。 详细说明:首先重置下密码,收到了一封邮件,重置密码地址是:
http://tuchong测试数据/account/reset/?code=1372415571&sign=9c4a3cab666fcddfdcec52a0d87ff73f&email=smtp_admin%40yeah.net
code是时间戳,email是我的邮箱,那么,sign是什么呢?
手贱测试了下,拿 1372415571smtp_admin@40yeah.net 去cmd5加密,结果正是9c4a3cab666fcddfdcec52a0d87ff73f!!!
所以,图虫的hash算法应该是
$sign=md5($code.$email);
从此,图虫的重置密码hash算法已被攻破。
为了证明这个 漏洞 ,我再次执行了一次找回密码
接下来,并且打开Chrome审查元素功能,记下找回密码后服务器返回数据的时间(格林尼治时间,须在基础上+8小时)。
然后打开在线工具,把时间转换成时间戳
得到时间戳为1372423073
拿1372423073smtp_admin@yeah.net去cmd5 加密 ,结果为790f0f42e5dcb3e00977ece88c0f50bc
这样,重置密码的三个参数都有了。
构造url:http://tuchong测试数据/account/reset/?code=1372423073&sign=790f0f42e5dcb3e00977ece88c0f50bc&email=smtp_admin%40yeah.net
构造重置密码链接的过程中,并没有登录邮箱查看邮件。
现在我们登录邮箱,看看收到的链接是不是一样的?
完全一致 修复方案: 1.将加密算法复杂化,例如
$sign=md5(md5($code).md5(md5(rand()).$email));
查看更多关于图虫网重置密码hash算法破解可导致重置任意用户的详细内容...