ГлавнаяПлагиныКритическая уязвимость в популярном плагине FancyBox for WordPress

Критическая уязвимость в популярном плагине FancyBox for WordPress

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

Сайт содержит вредоносный код

Сайт содержит вредоносный код

Начали исследовать, смотреть. Google Webmaster Tools показал кусок JavaScript кода который вставляет элемент подгрузки сторонней страницы — iframe. Код выглядит примерно вот так:

if (navigator.userAgent.match(/ msie /i)) { doc​ument. write ('...') ...

Домен замечен был 203koko в еврозоне, но могут быть и другие. Вредоносного кода сразу найти не удалось, сам сайт ничего не показывал, как будто ничего не было. «Поковырявшись» еще несколько часов пытаясь вызвать показ букашки, был замечен свежая публикация на форумах WordPress.org. Узнав заветный «203koko» стали собираться всё больше и больше людей, попавших в схожую ситуацию.

Плагин FancyBox for WordPress

Спустя час обсуждения стало понятно, что объединяет нас один общий плагин под названием FancyBox for WordPress. Плагин выводит фотогалереи и другой контент в модальных окнах. Очень популярный плагин, более 500,000 скачиваний (+ 1000 скачиваний в неделю), но очень старый.

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

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

Было решено тогда разобраться, как он туда мог попасть, и вскоре мы обнаружили уязвимость в функции сохранения настроек. Любой мог просто сохранить опции для плагина FancyBox for WordPress, включая опцию дополнительного вывода и содержания. Именно так туда и попал вредоносный код, а спустя некоторое время исчез. Возможно атакующие потихоньку лишь испытывали воды этой уязвимости прежде чем массово эксплуатировать.

Данный вид атаки называется хранимым межсайтовым скриптингом (Persistent XSS). Уязвимость является одной из самых распространенных.

Если у вас на сайтах используется FancyBox for WordPress (fancybox-for-wordpress) немедленно деактивируйте его. Плагин был скрыт из директории WordPress.org. Заметьте, что плагин не обновлялся 3 года, и хоть исправление уже существует и будет вскоре опубликовано, мы все равно не советуем продолжать пользоваться данным плагином.

Обновление: автор выложил два обновления к плагину FancyBox for WordPress. Первое (3.0.3) устраняет уязвимость в плагине, и второе (3.0.4) переименовывает ранее уязвимую опцию, что позволяет скрыть вставленный вредоносный код на уже зараженных сайтах. Если вы используете FancyBox for WordPress, рекомендуем обновиться до последней версии немедленно. Сделать это можно в панели администрирования WordPress в разделе Консоль → Обновления, или скачать новый дистрибутив плагина с сайта WordPress.org.

Также рекомендуем провести тщательный осмотр вашего хостинг-сервера на следы пребывания посторонних лиц. За все время пока данный плагин был уязвимым (около 3-х лет), злоумышленник мог получить полный доступ к вашему сайту, узнать ваш пароль, оставить бэкдор и т.д.

Чтобы обезопасить себя не забудьте скачать нашу бесплатную электронную книгу о безопасности в WordPress.

Будьте бдительными и удачи вам!

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!