以下展示MD5演算法+ salt的加密方式。
1. identifier.php 行 23
private $letters = 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';* 產生字典字串
2. identifier.php 行 72-73
public function getString($length = 12) { $str = str_repeat($this->letters, 10); $hash = substr(str_shuffle($str), 0, $length); return $hash;}* 重複字典字串10次後亂數打亂,再擷取前$length字元作為雜湊。
3. install.php 行 256
$salt = ( defined('MANUAL_PASSWORD_SALT') ) ? MANUAL_PASSWORD_SALT : $vh->getString(64);* MANUAL_PASSWORD_SALT定義為$vh->getString(64)
4. install.php 行 315
define('PASSWORD_SALT', $salt);* 定義PASSWORD_SALT=$salt
5. user.php 行 208-210
public function encryptPassword($uPassword, $salt = PASSWORD_SALT) { return md5($uPassword . ':' . $salt); }* MD5 $uPassword . ':' . $salt結合後的結果即為資料庫存入密碼欄位的資料 這樣的話即使取得MD5字串也沒有用,因為已經加入亂數雜湊的鹽了
破解上述方式:
1. 取得SQL資料
2. 取得鹽字串
3. 取得鹽與密碼的排列方式
4. 取得加密方式md5、sha1、crypt等
5. ......................上述四個都拿到不太簡單ㄚ....................
沒有留言:
張貼留言