简单网站密码分析

0x00 背景

最近在给一家教育机构 做网站的二次开发, 第一家公司开发不怎么给力, 下载了源码安装了以后发现时 Yii 框架编写的.  没用过, 下载了一套资料, 简单学习了一遍yii的用法, 懂了AR操作以后,就可以动手修改了.

0x01 密码的分析

mysql数据表中给了数据

(数据全部已修改, 不透露客户资料)

salt: 1234567890

password: deed2a88e73dccaa30a9e6e296f62be238be4ade


数了一下密码个数 40+  不是md5的,  老鸟应该一看就明白, 我没接触过这个算法


0x02 分析源码

定位文件, 找校验函数

一层层的找:

开启调试 找文件:

第一层:

public function checkPassword()
{
 if (! isset($this->model))
   return null;


//var_dump($this->password);
//var_dump($this->model);
//die;

 if ($this->model->verify($this->password,$this->passwordfield))
   return $this->model;
 return false;
}


定位这个 verify 函数  花了好长时间:


第二层:


public function verify($password,$passwordfield='password')
{


 return $this->$passwordfield===$this->hash($password);
}

继续找 hash 的函数

private function hash($string)
{
 return sha1($this->makesalt().$string);
}

private function makesalt()
{
 if (!isset($this->salt) or $this->salt=='')
 {
   $this->salt=md5(time().$this->username);
 }
//var_dump($this->salt);
//die;
//直接调用的是数据库的salt

 return $this->salt;
}

直接使用 sha1 的加密方式


salt 是数据库直接给的


搞定了 加密原理


salt: 1234567890

密码: xxxx

加密方式 sha1(1234567890xxxx) = 411c371eee6a9ea173d353867d3a50012829107e

工具: http://tool.oschina.net/encrypt?type=2  (在线加密网址)



查询了 sha1 加密 并不安全, 可以直接暴力破解..


算了, 总算分析懂了!




原文链接: 简单网站密码分析 版权所有,转载时请注明出处,违者必究。
注明出处格式:流沙团 ( https://www.gyarmy.com/post-236.html )

发表评论

0则评论给“简单网站密码分析”