最新消息:

图虫网重置密码 —-时间戳获取方法

别人渗透网站学习 admin 2348浏览 0评论

许多网站也存在同样的问题,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小时)。
201308131505583565
然后打开在线工具,把时间转换成时间戳
201308131505597802
得到时间戳为1372423073

拿1372423073smtp_admin@yeah.net去cmd5加密,结果为790f0f42e5dcb3e00977ece88c0f50bc

这样,重置密码的三个参数都有了。

构 造url:http://tuchong.com/account/reset/?code=1372423073&sign=790f0f42e5dcb3e00977ece88c0f50bc&email=smtp_admin%40yeah.net
201308131506016125

201308131506053306

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

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

201308131506077994

完全一致

修复方案:

1.将加密算法复杂化,例如
$sign=md5(md5($code).md5(md5(rand()).$email));

 

ps:在这篇文章中学到了两个知识点:

1、善于发现各种链接中参数的含义及关系,有助于完成渗透。

2、UNIX时间戳的获取:通过HTTP响应头部中的Date来进行转换(试了一下,是可以获取到正确的时间戳的,注意如果Date值后面有GMT标志,则是格林尼治时间,须在基础上+8小时然后再去换算时间戳)。

 

转载请注明:jinglingshu的博客 » 图虫网重置密码 —-时间戳获取方法

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址