网站地图    收藏   

主页 > 后端 > 网站安全 >

图虫网重置密码hash算法破解可导致重置任意用户

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] 许多网站也存在同样的问题,hash算法过于简单,导致轻易就能被破解。详细说明:首先重置下密码,收到了一封邮件,重置密码地址是:http://tuchong.com/account/reset/?code=1372415571sign=9c4a3c...

许多网站也存在同样的问题,hash算法过于简单,导致轻易就能被破解。
详细说明:首先重置下密码,收到了一封邮件,重置密码地址是:


http://tuchong.com/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.com/account/reset/?code=1372423073&sign=790f0f42e5dcb3e00977ece88c0f50bc&email=smtp_admin%40yeah.net


 
 


构造重置密码链接的过程中,并没有登录邮箱查看邮件。

现在我们登录邮箱,看看收到的链接是不是一样的?



完全一致
 

修复方案:

1.将加密算法复杂化,例如


$sign=md5(md5($code).md5(md5(rand()).$email));

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论