Обслуживание WordPress Взломали сайт? Плагин безопасности Цены Блог
Главная / Блог / Безопасность сайта
7 октября, 2026

Атаки через Ninja Forms и WPC Product Bundles: проверьте скрытые бэкдоры WordPress

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

С 4 октября 2026 года так атакуют сайты с WPC Product Bundles for WooCommerce. С 5 октября злоумышленники используют и отдельную уязвимость Ninja Forms. Patchstack сообщил об этой кампании 6 октября, о ней также написал BleepingComputer. По данным Patchstack, атак пока немного. Но если у вас стоит один из этих плагинов, ждать жалобы от покупателя точно не стоит.

Как заявка или заказ превращается в проблему с админкой

Это два разных плагина и две уязвимости типа stored XSS - когда вредный скрипт сохраняется на сайте и запускается позже. Аккаунт злоумышленнику не нужен. В Ninja Forms он отправляет обычную форму, добавив вредный текст в многострочное поле. В WPC Product Bundles подставляет специально подготовленное значение количества товара, которое сохраняется в заказе WooCommerce. Скрипт срабатывает, когда администратор открывает такую заявку или заказ.

Скрипт подгружается с https://imgcdn1.com/fz/x.js. Куки он не крадет. Вместо этого действует внутри уже открытой админской сессии: забирает защитные токены WordPress - nonce - и через штатный установщик плагинов добавляет поддельный плагин. Домен зарегистрировали 1 октября, уже после того, как 22 сентября публично раскрыли обе уязвимости.

Поддельный плагин называется WP Smart Thumbnails, версия 1.2.4, автор указан как MediaPress Labs. Он лежит в wp-content/plugins/wp-smart-thumbnails/ и ничего не делает при обычной загрузке WordPress. Витрина магазина может работать как ни в чем не бывало. Проверка «сайт же открывается» тут бесполезна.


Четыре способа вернуться на сайт

Одним подозрительным плагином дело не ограничивается. Атака оставляет несколько входов:

  1. Видимый администратор. Скрипт создает аккаунт через обычный экран пользователей WordPress. Логин и пароль приходят с сервера злоумышленника.
  2. Скрытый администратор. Логин может выглядеть безобидно, например support или backup, а почта заканчивается на @wordpress.org. Обязательный плагин с именем вида class-wp-query-<8 hex chars>.php прячет аккаунт из списка пользователей, фильтра администраторов и счетчиков.
  3. Тайный вход. Еще один обязательный плагин, class-wp-token-validate.php, принимает адрес вида /wp-login.php?_wplogin=<token>. По нему злоумышленник входит от имени самого старого администратора - часто это владелец сайта. Токены хранятся в fz_emer_login_tokens.
  4. Файловый менеджер без пароля. Прямой запрос к wp-smart-thumbnails.php открывает менеджер файлов. Через него можно загружать, менять и удалять файлы. В заголовке есть строка Moon, tell me if I could.

Обязательные плагины запускаются при каждом запросе. Отключить их из wp-admin нельзя, а в обычном списке плагинов их нет - ищите раздел Must-Use. Если просто удалить папку поддельного плагина, эти файлы останутся. Вот почему после «успешной» чистки заражение порой возвращается. Подробнее - в статье о том, почему сайт снова заражается после очистки.

Шаг 1. Обновите оба плагина

Ninja Forms обновите до последней версии - сейчас это 3.15.5. Исправление появилось в 3.15.4, версии до 3.15.3 включительно уязвимы. WPC Product Bundles тоже обновите до последней версии, сейчас это 8.7.4. Исправление вышло в 8.6.7; версии до 8.6.6 включительно затронуты.

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


Шаг 2. Проверьте, не успели ли вас атаковать

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

  • Поищите папку wp-content/plugins/wp-smart-thumbnails/. Среди известных файлов - wp-smart-thumbnails.php, emer-run.php, readme.txt и includes/class-thumb-cache.php.
  • Проверьте wp-content/mu-plugins/: нет ли там class-wp-query-*.php и class-wp-token-validate.php. Датам файлов не верьте. Файлы поддельного плагина датировали задним числом июлем 2026 года, а обязательным плагинам поставили старую дату одного из файлов в корне WordPress.
  • Сравните администраторов в wp-admin с пользователями и ролями администраторов в базе через phpMyAdmin. Ищите незнакомые адреса @wordpress.org. Команда wp user list --role=administrator тоже пригодится, но скрывающий плагин может повлиять и на ее вывод. Прямая проверка базы надежнее.
  • Поищите среди настроек WordPress значения fz_emer_done_v1 и fz_emer_login_tokens. В доступных логах сервера или защитного плагина ищите imgcdn1.com, запросы с _wplogin и прямые обращения к wp-smart-thumbnails.php.
  • Проверьте свежие заявки Ninja Forms и заказы WooCommerce на теги скриптов. Лучше делать это через базу данных. Либо сначала обновите плагины и только потом открывайте записи в редакторе: просмотр зараженной записи в старой версии может запустить атаку.

И не полагайтесь только на совпадение хеша файла - злоумышленник меняет маскировку для каждого сайта. Сканер вредоносных программ поможет найти подозрительные файлы, но не заменит проверки выше.

Нашли следы? Убирайте всю цепочку

Сначала сохраните копию файлов и базы - это пригодится для разбора инцидента. Затем удалите wp-smart-thumbnails/ и оба вредоносных файла из mu-plugins. Удалите две настройки fz_emer_ и созданные злоумышленником админские аккаунты, включая скрытый аккаунт из базы. Перед удалением каждого пользователя убедитесь, что это не ваш сотрудник.

Смените пароли самому старому администратору и всем остальным админам. Обновите ключи и соли WordPress в wp-config.php - так вы завершите открытые сессии. Файловый менеджер без пароля мог записать что-то и в другие папки, поэтому проверьте сайт на дополнительные файлы и запустите сканирование. Потом уберите зараженные заявки или данные заказов, чтобы никто снова не открыл скрипт. Копию для разбора сохраните до удаления.

Если не уверены, какие файлы и аккаунты чужие, не удаляйте их наугад - лучше заказать очистку взломанного сайта. А статья о том, что делать в первые 24 часа после взлома, поможет расставить следующие шаги по порядку.

Одна проверка на сегодня

Уже обновились? Откройте файловый менеджер хостинга и загляните в wp-content/mu-plugins/. Если там лежит хотя бы один из двух названных файлов, зеленая надпись «плагины обновлены» ничего не говорит о чистоте сайта.