流沙团
简单网站密码分析
2017-5-29 流沙团


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 加密 并不安全, 可以直接暴力破解..







算了, 总算分析懂了!













发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容