FYZI Shield / Статьи / Кейс: неиспользуемый плагин

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

Сайт спортивной федерации на WordPress начал публиковать страницы «Hacked by …», а в списке пользователей появлялись десятки администраторов. Входом оказалось дополнение к конструктору Elementor, установленное когда-то «на будущее». Ни одна страница сайта его не использовала.

Кейсы · Обновлено 23 октября 2026 · 4 мин чтения

СайтСпортивная федерация
ДвижокWordPress + Elementor Pro
Чужих админовБольше 100
ВходУязвимый плагин

Что увидел владелец

Как бот попал на сайт

На сайте стояло дополнение к Elementor Pro с конструктором форм. В его версии была известная уязвимость: обработчик формы принимал запросы от неавторизованных посетителей и позволял загрузить файл на сервер. Боты массово ищут сайты с этим плагином и загружают через него веб-шелл в папку uploads, а дальше создают администраторов.

Самое неприятное: плагин ничего не делал для сайта. Мы проверили все страницы и шаблоны — ни один элемент из него не использовался. Его поставили когда-то вместе с другими дополнениями и забыли.

Правило. Отключённый плагин безопаснее включённого, но удалённый — безопаснее отключённого. Уязвимый код в папке plugins может остаться доступным напрямую, даже если плагин выключен в админке.

Первая чистка и почему её не хватило

Первая чистка удалила веб-шеллы из uploads и чужих администраторов. Но через месяц их было уже около сотни, а страницы «Hacked by» создавались от имени главного администратора. Это значило, что на сайте остался код, работающий независимо от плагина.

Сверка ядра WordPress с официальными контрольными суммами показала:

Такая же схема встретилась нам на сайте аудиторской компании — подробно о ней в кейсе «Сайт взламывали пять раз подряд». Похоже, это один и тот же инструмент массового взлома.

Что сделали

  1. Удалили уязвимый плагин целиком, а заодно ещё несколько неактивных плагинов.
  2. Заменили всё ядро WordPress чистой копией той же версии с русским языковым пакетом и проверили контрольные суммы.
  3. Удалили чужих администраторов и записи, созданные от их имени.
  4. Сменили пароль базы данных и секретные ключи — все сессии завершились.
  5. Поставили защитный must-use плагин: запрещает создавать администраторов кому-либо, кроме администраторов; закрывает XML-RPC, список пользователей через REST и комментарии; ограничивает подбор пароля; присылает письмо при подозрительных действиях.
  6. Закрыли регистрацию и комментарии — на сайте федерации они были не нужны.
Нюанс со сверкой ядра. На русском WordPress команда wp core verify-checksums без параметра --locale=ru_RU считает изменённым файл version.php. Это ложная тревога: он отличается в русской сборке. Сверяйте с той локалью, которая установлена.

Как проверить свой сайт на такие плагины

  1. Откройте список плагинов и для каждого ответьте: где на сайте он работает? Если ответа нет — удаляйте.
  2. Особое внимание — дополнениям к Elementor, конструкторам форм, файловым менеджерам и плагинам импорта. У них чаще всего бывают уязвимости с загрузкой файлов.
  3. Проверьте wp-content/uploads на файлы .php — их там быть не должно.
  4. Запретите выполнение PHP в uploads через .htaccess.
  5. Если плагин платный и без обновлений — ищите замену. Устаревшая платная версия опаснее бесплатной актуальной.

Полный список мер — в чек-листе защиты WordPress.

Частые вопросы

Если плагин отключён, он безопасен?

Не всегда. Файлы плагина остаются на сервере, и некоторые из них можно вызвать напрямую по адресу. Надёжно только удаление.

Как узнать, что у плагина есть уязвимость?

Проверяйте базы уязвимостей WordPress (WPScan, Patchstack, Wordfence Intelligence) по названию плагина и версии. Наш сервис делает это автоматически для каждого сайта на подписке.

Почему после удаления плагина взлом продолжился?

Пока плагин был открыт, бот успел оставить на сайте собственный загрузчик в ядре WordPress. Закрыть дверь мало — нужно найти всё, что уже занесли внутрь.

Читайте также

Сайт взломан? Пишите