Как восстановить пароль WordPress


Как сбросить пароль админа WordPress

Мотивов для восстановления пароля WordPress, тоже может быть более чем достаточно.

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

 

Самым банальным из них, может быть сам администратор, который просто забыл пароль от админки. Могут быть и более сложные интересные случаи. Например, если панель администратора WordPress не защищена должным образом, то любой относительно продвинутый школьник, может узнав реальный логин админа WordPress, воспользоваться утилитой WPScan и подобрать пароль администратора за несколько минут часов.

В силу своей неопытности, этот же школьник может просто изменить пароль администратора WordPress, и последний уже в силу вышеизложенных обстоятельств, становиться не совсем хозяином своего сайта.

Каждый вебмастер знает, что профиль пользователя Вордпресс привязан к почтовому аккаунту  на который и приходит этот ключ активации,  следовательно  взломав почту и имея свободный доступ к файлу wp-login.php, злоумышленник может очень быстро сбросить пароль.

Вариант немного посложнее.

В форме авторизации wp-login.php есть функция для создания нового пароля, для этого необходимо указать логин или почтовый ящик администратора.

После того, как вы нажимаете на кнопку получить новый пароль, в таблице wp_users создается в поле user_activation_key ключ для активации.

user_activation_key

Если на вашем сайте есть уязвимые плагины с помощью которых злоумышленник может провести SQL инъекцию и получить значение поля user_activation_key, то ему ничего не мешает выполнить GET запрос к адресной строке вида:

wp-login.php?action=rp&key=user_activation_key&login=admin

После чего скрипт авторизации попросит ввести новое значение user_pass.

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

Доступ к файлу wp-login.php должен быть ограничен по ip адресу или защищен http аутентификацией.

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

А если злоумышленник автоматизирует этот процесс, то и несколько сотен — тысяч подобных писем.

Все это конечно же лирика, но о том, как восстановить пароль администратора должен знать каждый вебмастер имеющий свой сайт на WordPress.

Восстановление пароля WordPress

Логины и пароли всех пользователей WordPress, как вы уже поняли из написанного выше, хранятся в таблице wp_users рабочей базы данных MySQL.

Хэши паролей хранятся в поле user_pass в зашифрованном (md5 алгоритмом) виде.

Для расшифровки хешей существует достаточно большое количество онлайн-сервисов, которые предлагаю свои услуги, как на платной основе так и без. Одним из таких является сервис cmd5.ru, в котором можно бесплатно проверить стойкость своего хэш кода.

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

1. Самый простой способ, это нажать на ссылку забыл пароль и ввести логин или email администратора.

2. Требуется доступ к консоли MySQL или веб интерфейсу PhpMyAdmin. Получив доступ к нужной базе данных, нужно выполнить следующий SQL запрос:

UPDATE `wp_users` SET `user_pass` = MD5('New_Password') WHERE `user_login` = 'Administrator'

3. Самый простой  способ на мой взгляд, для реализации которого необходимо войти в PhpMyAdmin, выбрать нужную базу данных и выделить (нажать мышкой) таблицу wp_users.

Изменить пароль в таблице wp_users

В появившейся таблице необходимо  нажать на кнопку Изменить (она показана в виде карандаша) и после того как откроется для редактирования таблица wp_users, вписать в поле user_pass ваш новый пароль.

После этого его необходимо зашифровать с помощью функции md5. Для этого в выпадающем списке необходимо выбрать md5 и в нижнем правом углу нажать на кнопочку ok.

Создать новый пароль WordPress

4. Для реализации этого способа необходимо подключаться к серверу по ftp и добавить в файл function.php всего одну строчку кода:

wp_set_password('passwd', $user->ID);

После этого вы можете авторизоваться используя пароль passwd или любой другой написанный вами. Не забудьте потом удалить эту строчку кода из function.php!

Данный способ описан в codex.wordpress и в качестве второго  параметра функции wp_set_password рекомендуется передавать ID пользователя, но на localhost с обновленной версией движка он не сработал, поэтому я добавил  $user->ID и пароль был успешно изменен.

P.S. Как вы поняли из статьи, восстановить пароль WordPress не так уж и сложно. Мне больше по душе 3 способ ибо он является самым простым и надежным.