Как восстановить доступ к админ-панели сайта

Важная правка на сайт – нужно срочно поменять данные в шапке о смене адреса конференции. Конференция уже завтра. Клиент не на связи. Проект важный для компании. Правка на 10 минут, но не подходят доступы к админ-панели. Перепробованы все сохраненные пароли. Согласитесь, у каждого разработчика бывают в процессе работы подобные неожиданные обстоятельства.

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

Для систематизации информации мы подготовили готовый код, который регулярно испольузем сами. Мы сориентируем, как создать пользователя или «залогиниться» под уже существующим, имея ограниченный набор данных – Доступ к панели хостинга, доступ к ISPManager, FTP или доступ к SSH-консоли. Представлены коды для всех актуальных CMS в 2023 году: Как для популярных Bitrix и WordPress, так и для более экзотической, но до сих пор встречающейся CMS ModX. Каждый фрагмент кода сопроводим подробными комментариями.

Восстановление доступа к админ-панели сайта на Bitrix

Начнём обзор программного кода для получения доступа с самой популярной в 2023-2024 году системе управления сайтом в странах СНГ: 1с-Битрикс.

Как создать администратора Bitrix через PHP-скрипт

По SSH или через FTP или через «Файловый менеджер» в панели хостинга переходим в корневую директорию сайта, часто это /home/bitrix/www/ и создаём файл add-admin-bitrix.php со следующим содержимым:

<?
require
($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');
$newlogin = 'new_admin_username';
$newemail = 'new_admin_email@webit.ru';
$newpassword = 'new_admin_password';
$group = array(1);
$user = new CUser;
$arFields = array(
   "EMAIL" => $newemail,
   "LOGIN" => $newlogin,
   "LID" => "ru",
   "ACTIVE" => "Y",
   "GROUP_ID" => $group,
   "PASSWORD" => $newpassword,
   "CONFIRM_PASSWORD" => $newpassword
);
$ID = $user->Add($arFields);
if (intval($ID) > 0) {
   echo 'Администратор создан';
} else {
   echo $user->LAST_ERROR;
}
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php");

В указанном коде константы:

  • new_admin_username
  • new_admin_password
  • new_admin_email@webit.ru

являются примерами логина, e-mail и пароля нового администратора, которые лучше заменить на ваши данные.

После создания файла заходим через браузер по адресу:

https://<домен_сайта>.com/add-admin-bitrix.php

В случае успешной работы увидим «шапку сайта» и надпись «Администратор создан».

Далее, для авторизации вводим новый логин с паролем по ссылке:

https://<домен_сайта>.com/bitrix/

Примечание: Данный код не работает, если сайт находится в «режиме техобслуживания»

Как авторизоваться в CMS Bitrix с правами администратора через PHP-код без логина и пароля

Шаг 1 - Переходим в корневую директорию сайта, создаём файл authorizate-bitrix.php со следующим содержимым:

<?php
require
($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
global $USER;
$USER->Authorize(1);
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php");

Логика работы скрипта – авторизация пользователя с ID = 1. Обычно это ID администратора, в теории администратор с ID = 1 бывает удалён, автор данной статьи в своей практике не помнит ни одного такого случая.

Шаг 2 - Сохраняем файл

Шаг 3 – Заходим по адресу

https://<домен_сайта>.com/authorizate-bitrix.php

Шаг 4 – Переходим на главную страницу сайта и видим, что мы успешно авторизовались – в верхней части страницы появилась админ-панель битрикса.

Шаг 5 – Удаляем файл authorizate-bitrix.php во избежании его использования третьими лицами.

Восстановление доступа к админ-панели сайта на WordPress

Как создать администратора WordPress через PHP-скрипт

Шаг 1 – Находим корневую папку сайта на сервере. Для примера это будет /home/website.host/

Шаг 2 – Узнаём название шаблона сайта – открываем главную страницу, просматриваем HTML-код страницы, ищем строку /wp-content/themes/ - фраза после themes до следующего слеша – будет нужное нам название темы.

Шаг 3 – Комбинируем данные из шагов 1 и 2 - переходим в папку «шаблона» по адресу /home/website.host/wp-content/themes/website-theme/

Шаг 4 – Открываем файл functions.php и в конце добавляем следующие строки:

function wpb_admin_account()
{
   $user = 'new_admin_username';
   $pass = 'new_admin_password';
   $email = 'new_admin_email@webit.ru';
   if (!username_exists($user) && !email_exists($email)) {
      $user_id = wp_create_user($user, $pass, $email);
      $user = new WP_User($user_id);
      $user->set_role('administrator');
      echo 'Администратор создан';
   }
}
add_action('init', 'wpb_admin_account');

Шаг 5 – Заходим на сайт через браузер – функция выполнится и в теле страницы появится надпись «Администратор создан».

Шаг 6 – Заходим по адресу https://website.host/wp-admin/ , вводим новые логин с паролем и оказываемся авторизованными в админке.

Шаг 7 – Удаляем добавленные в шаге 4 строки из файла functions.php

Как авторизоваться в CMS WordPress через PHP-код без логина и пароля

Для того, чтобы авторизоваться в «Вордпрессе» без создания нового администратора, используем следующий код, который также добавляем в functions.php темы:

If($_GET['auth1']=='auth2'){
   $args = array(
      'role'    => 'administrator',
      'orderby' => 'user_nicename',
      'order'   => 'ASC'
  
);
   $users = get_users( $args );
   foreach ( $users as $user ) {
      wp_set_current_user($user->ID);
      wp_set_auth_cookie($user->ID, true, false );
      echo 'Авторизация успешная.';
      exit();
   }
}

Переходим по ссылке:

https://<домен_сайта>.com/?auth1=auth2

Логика следующая – узнаём ID пользователя с правами администратора, и авторизовываем браузер с данным User ID.

После авторизации в целях безопасности рекомендуется удалить данные строчки из файла functions.php.

Восстановление доступа к админ-панели сайта на ModX

Несмотря на то, что CMS ModX имеет ограниченный функционал и не настолько интуитивно понятна – система активно используется, работа с клиентскими сайтами на ModX – не редкость в 2023-2024 году.

Как создать администратора ModX через PHP-скрипт

Для сайта на ModX действуем аналогичным образом – по FTP/SSH/Панель хостинга создаём в корневой директории файл add-admin-modx.php со следующим содержимым:

<?php
$username = 'new_admin_username';
$password = 'new_admin_password';
$email = 'new_admin_email@webit.ru';
$sudo = true;
require 'config.core.php';
require MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx = new modX();
if ((!$modx) || (!$modx instanceof modX)) {
   echo 'Could not create MODX class';
}
$modx->initialize('mgr');
$modx->getService('error', 'error.modError', '', '');

$user = $modx->newObject('modUser');
$profile = $modx->newObject('modUserProfile');

if ($user && $profile) {
   $user->set('username', $username);
   $user->set('password', $password);
   $profile->set('blocked', 0);
   $profile->set('blockeduntil', 0);
   $profile->set('blockedafter', 0);
   $profile->set('email', $email);
   $user->addOne($profile);
   $user->setSudo($sudo);
   if ($user->save()) {
      echo 'Пользователь успешно создан';
      $user->joinGroup('Administrator');
   } else {
      echo 'Не получилось создать указанного пользователя';
   }
} else {
   echo 'Не получилось создать пользователя';
}

Фразы:

  • new_admin_username
  • new_admin_password
  • new_admin_email@webit.ru

в коде тестовые, константы перед запуском скрипта следует заменить на ваши данные (логин, e-mail и пароль)

Затем заходим по адресу https://website.host/add-admin-modx.php - в случае успешной работы скрипта увидим сообщение «Пользователь успешно создан».

Переходим в админ-панель https://website.host/manager/ вводим данные из вышеуказанного скрипта – и видим, что мы успешно авторизовались.

Доступ к админ-панели восстановлен

Наш небольшой архив скриптов для получения доступа к админ-панели подошёл к концу. Данным кодом мы сами пользуемся каждую неделю и каждый из них неоднократно помогал в самых экстремальных ситуациях – когда правка нужна «сейчас», а по всем известным доступам авторизация не удавалась.

Теперь вы знаете, как быстро и «в 2 клика» авторизоваться на сайтах всех популярных современных платформах: Bitrix, WordPress, Modx.

Существуют также способы смены пароля и добавления пользователя, имея доступ к MySQL-базе – данные способы в статье не рассмотрены по причине того, что если существует доступ к PhpMyAdmin или Adminer – в 99% случаев это означает, что существует доступ к файловой системе, следовательно «экологичней» использовать вышенаписанные скрипты, т.к. при «грубом» вмешательстве в базу данных высока вероятность нарушить корректную работу веб-сайта.

Рекомендуем добавить данную страницу в закладки, чтобы сэкономить время, когда в следующий раз понадобится авторизоваться без пароля – актуальный и проверенный код находится в одном месте - на данной странице.

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

Авторизация успешная!

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

Ваш комментарий будет опубликован после модерации без публичного указания вашего e-mail адреса. Обязательные поля помечены *