XOOPS以外のCMSはあまり使ってないですが、CMSとして統一感・完成度が高いConcrete5を試してみました。MAMPで構築したローカル環境にConcrete5をインストールしたのですが、うっかり管理者のパスワードを忘れてしまいました。
通常、パスワードを忘れた場合、メールでリマインドできるようです。が、あいにくローカル環境ということもあり、メール送信が動かない…。
もしや、データベースに生パスワードが保存されているのでは?と思いデータベースを見てみました。すると、UsersテーブルにuPasswordというカラムがあるじゃないですか。しめたと思って、中身を見てみたらばっちり暗号化されていました。さすがに、最近のCMSはパスワードを生で保存しておくなんてことはしないようです。
PHPをやっている人ならこの暗号化は、md5()だとわかったので、md5('admin')を実行して、それをuPasswordに保存してadmin@adminでログインを試みました。それでも、依然としてログインできません。パスワードが間違っているといいます。
この手の物は、たいていパスワードにprefixを付けている可能性があるので、ソースをおってみると、案の定PASSWORD_SALTが付け加えられたmd5()されてました。
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'root');
define('DB_DATABASE', 'concrete5');
define('BASE_URL', 'http://localhost');
define('DIR_REL', '/concrete5');
define('PASSWORD_SALT', 'BtL4OCqEYan5yZrDVHUhKcFbNzmp3Q1A7uToifeWMwSv8Xsx0jkG2l6J9RPIg');
?>
この中のPASSWORD_SALTの値をコピー。この例だと、BtL...Plgの部分です。<?php $salt = 'BtL4OCqEYan5yZrDVHUhKcFbNzmp3Q1A7uToifeWMwSv8Xsx0jkG2l6J9RPIg'; $password = 'admin'; echo md5($password . ':' . $salt); ?>pass.phpの中身を上のように書く。$salt = '';の部分はsite.phpでコピーした値を書く。ここでは、「admin」をパスワードとして設定します。adminが嫌なら他のものに変えてOK。
UPDATE `Users` SET `uPassword` = '65f7ed3aff95ce2394d6458c442eb3b0' WHERE `uID` =1;
パスなどは適宜読みかえてください。
トラバURL : http://suin.asia/trackback/450
氷川 XOOPS Module 開発室