Хранение паролей сайта или восстанавливаем пароль, имея доступ к базе

В целях безопасности многие сайты не хранят в открытом виде пароли пользователей. Функция восстановления пароля в таких случаях не “восстанавливает” старый пароль, а генерирует новый. При авторизации в этом случае присланный пароль шифруется (обычно хеш-функцией), а результат сравнивается с тем, что хранится в базе. Если совпадают - все в порядке. Если нет - ошибка авторизации.

Однако, довольно часто, требуется войти в панель управления или администрирования (админку), доступ к которой потерян (или вообще неизвестен). Восстановление тоже может не работать. Как быть?

Если имеется доступ к базе - можно попробовать задать новый пароль “ручками”, непосредственно в таблице пользователей. У каждой системы управления может быть свой метод хранения хешированных паролей, однако, наиболее распространенных способов не так много.

  • Хранение пароля в открытом виде

На сегодняшний день многие CMS не используют этот способ хранения пароля. Однако, полностью исключать этот случай нельзя. Возможно комбинация “логин-пароль” непосредственно из базы данных подойдет для входа.

  • Хранение результата хеш-функции (хеш-суммы) пароля.

При задании (или генерации) пароля производится вычисление хеш-функции от строки пароля, и это значение записывается в таблицу. Наиболее распространенные функции для хранения паролей к сайтам - md5() , sha1(). Распознать хеш-функцию можно по характеным признакам:

md5-хеш содержит 128 бит (16 байт) и обычно представляется как последовательность из 32 шестнадцатеричных цифр. Например, MD5(”md5″) = 1bc29b36f623ba82aaf6724fd3b16718

sha1-хеш содержит 160 бит (20 байт) и представляется в виде последовательности 40 шестнадцатеричных цифр (5 групп по 8 символов). sha1(”sha”)   = d8f45903 20e1343a 915b6394 170650a8 f35d6926

  • Хранение хеш-суммы пароля и соль (salt)

Этот вариант имеет ещё более высокую степень защиты. В базе хранится хеш сумма и соль в виде hash:salt. (символ двоеточия приведен для примера, однако, именно его использование распространено)

salt - (соль) обычно строка из нескольких символов.  Используется для генерации хеш суммы. функция вычисляется не от значения пароля, а от значения “пароль”+”соль” ( “соль”+”пароль”, md5(md5(”пароль”)+”соль”)).

Хранение паролей в некоторых CMS

MD5 c4ca4238a0b923820dcc509a6f75849b Используется в phpBB v2.x, Joomla версии ниже 1.0.13, а также во многих других форумах и CMS.Длина: 16 байт. shugarcrm (поле user_hash)
md5($pass.$salt) 6f04f0d75f6870858bae14ac0b6d9f73:1234 Используется в WB News, Joomla версии 1.0.13 и выше.Длина: 16 байт.
md5($salt.$pass) f190ce9ac8445d249747cab7be43f7d5:12 Используется в osCommerce, AEF, Gallery и других CMS.Длина: 16 байт.
md5(md5($pass)) 28c8edde3d61a0411511d3b1866f0636 Используется в e107, DLE, Koobi .Длина: 16 байт.
md5(md5($pass).$salt) 6011527690eddca23580955c216b1fd2:wQ6 Используется в vBulletin, IceBB.Длина: 16 байт.
md5(md5($salt).md5($pass)) 81f87275dd805aa018df8befe09fe9f8:wH6_S Используется в IPB.Длина: 16 байт.
md5(md5($salt).$pass) 816a14db44578f516cbaef25bd8d8296:1234 Используется в MyBB.Длина: 16 байт.
SHA-1 356a192b7913b04c54574d18c28d46e6395428ab Используется во многих форумах и CMS.Длина: 20 байт.Алгоритм: соответствует функции sha1() языка PHP.
sha1(strtolower($username).$pass) Admin:6c7ca345f63f835cb353ff15bd6c5e052ec08e7a Используется в SMF.Длина: 20 байт.
base64_encode($pass) * Используется в Shop Script .

Cбрасываем пароль для JOOMLA
update `jos_users` set password = CONCAT(MD5(CONCAT('123','123')),':123') where id=1
пароль, как несложно догадаться - 123

Сброс пароля для Bitrix
http://www.vladsun.com/cms/bitrix_password_change.php
* с версии 7.1 checkword = (md5(salt+pass))

http://www.insidepro.com/hashes.php?lang=eng

Метки:

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

Комментарии (5) к записи “Хранение паролей сайта или восстанавливаем пароль, имея доступ к базе”

  1. Ivan сообщает :

    Cбрасываем пароль для JOOMLA
    update `jos_users` set password = CONCAT(MD5(CONCAT(’123′,’123′)),’:123′) where id=1
    пароль, как несложно догадаться - 123

    Здравствуйте. Интересует очень срочно, как этим способом воспользоваться. Неизвестен пароль на вход в админ панель джумлы 1.5 . Старый пароль не подходит….

  2. levik сообщает :

    Выполнить запрос к Вашей базе в PHPMYADMIN (или в любом mysql клиенте). При этом, возможно, потребуется указать используемый префикс в имени таблицы jos_users

  3. beep сообщает :

    Блин, раньше в DLE просто md5 был, а теперь сделали двойной :) Ё-маё, я ща несколько раз переустанавливал и из бекапов данные выдёргивал, вместо поиска такого простого способа… Ужасть

  4. Петр сообщает :

    Как сбросить пароль к OsCOMMERCE

    UPDATE `admin` WHERE admin_id = 1 SET admin_password = '202cb962ac59075b964b07152d234b70:12';
    Можно заходить - логин соответствует email, который указан у пользователя 1, а пароль 3. После обязательно изменить на более сложный.

  5. JoshuaBig сообщает :

    Мне друг посоветовал побеждать чтобы моего сайта вдс. Не дорогой и побольше оперативы, минимум через 2GB. Для принимали оплату карточкой. Который можите посоветовать? Остановил свой выбор для:
    [spam] http://fastvds.pro/shared-hosting.html virtual hosting[/spam]
    [spam]http://fastvds.pro[spam]

Добавить комментарий