Восстанавливаем пароль к WordPress’у

В системе управления паролями WordPress’а есть стандартный метод восстановления доступа к сайту (панели управления сайтом), посредством получения новой пароли взамен потерянной.

Восстанавливаем пароль к WordPress’у

Достаточно в панели «забыли пароль?» ввести свой email или ник, и вам будет выслан новый пароль на email.

получения новой пароли взамен потерянной

Однако бывает ситуации, когда невозможно воспользоваться email (нет доступа к email).

Особенно часто данная ситуация возникает (на локальном сервере \localhost) при неправильной установки «денвера».

Примечание:

При правильной установки «Денвера», по следующему пути ‘Х:\WebServers\tmp\!sendmail’ должна быть установлена заглушка «!sendmail». Куда складываются вся почта, отсылаемая скриптами с localhost. Письма хранятся в файлах вида «дата_и_время.eml» (пример: 2008-05-28_19-20-22.eml), которые можно открыт в любом текстовом редакторе типа «Блокнот».

Как раз недавно и со мной случилось такая беда, один из бесплатных email серверов канул в небытие. И как раз один из сайтов быль зарегистрирован на email этого сервера. Сайт давно лежал без присмотра, и хотел я его восстановить и с удивлением заметил что потерял пароль к админ части (хотя я записываю все пароли и ники в отдельный блокнотик, но к этому сайту записи не оказалось).

Было несколько вариантов решения данной проблемы:

1. Сохранит базу, пре установит WordPress, и вручную восстановить каждую запись базы (долго и нудно).

2. Залезть в скрипт управление паролями в WordPress и поставить заглушку на проверку пароли (?)(не пробовал хотя в сети нашел инфу для других смс как это сделать).

3. Подмена пароли, подменит код MD5 в базе на код известной нам пароли.

Вот о 3-м способе я вам и поведаю.

Посмотрим, как работает проверка пароли при входе:

проверка пароли при входе

Скрипт проверки пароли берет данные (имя и пароль) введенные вами в форму, объединяет их и email «login+password+email» (объединение с email’ом не проверял, может email не участвует) и кодирует в строку MD5. После чего полученная строка проверяется со строкой хранящейся в базе данных.

Примечание:

WordPress не хранит в базе данных пароль пользователя. А хранит строку кода созданную при регистрации из данных пользователя (login+password+email).

Как известно хреш код MD5 всегда кодируется в одну и туже строку (то есть из одних данных всегда при кодировании получаем одинаковый код). А зная это нам нужно подобрать последовательность данных и получит код MD5 для замены.

Немного поэкспериментировав на localhost, я получил данные которые можно с успехом применит для подмены пароли в базе WordPress’а.

Данные для подменны:

Имя пользователя: admin ;

e-mail: a@mail.ru ;

проль: 123 ;

код: $P$BM1gkak60RFD.yxeTIRyaRw4DEuvyv0 ;

Как пользоваться.

Открываем «phpMyAdmin», выбираем нашу базу, выбираем обзор «wp_users» (смотри рисунок), далее в следующей странице выбираем редактировать.

Восстанавливаем пароль к WordPress, phpMyAdmin

Восстанавливаем пароль к WordPress, phpMyAdmin, wp_users выбираем редактировать

Подменяем данные в базе (смотри рисунок) и сохраняем.

Восстанавливаем пароль к WordPress, phpMyAdmin

Идем на страницу входа в админку, вбиваем наши данные (логин: admin, проль: 123), входим в админку и меняем данные (login, password, email) на свои.

Все!

PS.

Это было мое небольшое изыскание в области восстановление пароли. Еще, после того как я решил проблемы с восстановлению пароли в WordPress, мне на глаза попалась статья в кодексе «Secret Key IMPORTANT» где обсуждается уязвимость WordPress.

Также о «секретного ключа» можно прочитать у «Тараса», провиденный мною небольшое изыскание показало, что данный ключ влияет на генерацию кода. Но при подмене, если даже прописанные разные секретные ключи в wp-config.php вы все равно входите в админку. Что доказывает, что данный ключ не учитывается при проверке входа в админку (не понятно ???)

Дополнение:

Предложенный вариант «Dissected_voice», по подмены (замены) пароли в WordPress’e.

Проверил на Wp 2.5 работает (непонятно).

Входим в phpMyAdmin, выбираем нашу базу, выбираем таблицу «wp_users» и переходим на страницу редактирования (рисунок ниже). В вписываем новый пароль в поле «user_pass» и выбераем функцию преобразования MD5. Сохраняем, кнопочка «Пошел», все пользуемся новой паролю.

Восстанавливаем пароль к WordPress’у

Статьи похожей тематики

Отзывов (10) на «Восстанавливаем пароль к WordPress’у»

  1. Megos пишет:

    Полезный пост. Реально полезный. Как-то пытался сделать такую подмену, но не вышло и забил. Из-за одного сплога заморачиваться лень было. А сейчас сплогов несколько десятков и пароли к ним пришлось как-то искать долго-долго… :)

  2. AbMan пишет:

    Было аналогичная ситуация, поиски решения этой проблемы и найденное решения влились в этот пост.

  3. Dissected_voice пишет:

    Достаточно трудоемко.

    Недавно сам восстанавливал пароль - проще через phpMyAdmin зайти в таблицу wp_users и в поле user_pass вписать новый пароль, а кроме того слева поставить функцию MD5.

    Принимаем изменения и … вуаля, пароль сменился. И не нужно никаких манипуляций с МД5 хэшем.

  4. sho0reek пишет:

    Dissected_voice, то есть это просто md5 от пароля? :)
    надо проверить =)

    -не в тему-
    а как, кстати, заставить Wordpress при авторизации смотреть не в свою базу, а в таблицу из другой базы, где лежат юзеры CMS Bitrix? будет очень полезно иметь такую возможность, потому что синхронизация - дело последнее..

  5. WpTj пишет:

    Спасибо Dissected_voice, проверил работает (добавил в пост), только не понятно почему, вроде в официальной документации говорится о использовании нескольких источников данных при кодировании в MD5.

    sho0reek – Для синхронизации с другой базой скорее всего нужно будет писать свой скрипт.
    Или вы имеете ввиду мульти-блог (в одной базе несколько блогов), то решение данной задачи в определении префикса для каждого блога по его домену.

  6. sho0reek пишет:

    WpTj, про мультиблог понятно. А вот если нужно обращаться к таблице пользователей на другом сервере, CMS тоже другая, т.е. данные лежат по-другому :) Что лучше - делать периодически импорт пользователей своим скриптом (плохо) или сделать плагин? Ведь теоретически можно сделать такой плагин?

  7. WpTj пишет:

    sho0reek – Лучшим вариантом будет плагин, но можно небольшой скрипт (функцию) добавит functions.php, и все будет отлично работать, еще для ускорения и уменьшения количество внешних обращений можно кэшировать данные во временную таблицу. Или можно создать таблицу в базе данных блога и обновлять ее (там каждый час или раз в сутки), в зависимости что Вам нужно конкретно.

  8. CJ.MoBiX пишет:

    Вот спасибо :)
    Помогло)

  9. slaviyn пишет:

    Большое спасибо за статью. По глупости пришлось переносить базу на уже чистый домен, после импорта выносило с админки и не принимало пароль данный при установке WP. Ваш способ помог за 5 мин управился, до этого часов пять проигрался

  10. Андрей пишет:

    Да, спасибо автору. Реально хватило просто заменить эл.адрес в PhPMyAdmin и получить на него новый пароль.

Оставьте отзыв

Блог защищен интеллектуальной системой защиты от спама.