Один клик администратора запускает PHP на сервере WordPress

leer en español

2005
Один клик администратора запускает PHP на сервере WordPress

Click2Shell использует активную сессию жертвы и штатный механизм установки тем.

image

Один переход по подготовленной ссылке может закончиться выполнением PHP-кода на WordPress-сервере, если в этот момент администратор уже вошёл в панель управления. Для цепочки Click2Shell опубликован полноценный proof-of-concept, который показывает путь от обычного URL до запуска кода без учётной записи атакующего.

Первая часть атаки находится в ядре WordPress и относится к CSRF и внедрению в jQuery-селектор. Параметр с названием темы обрабатывают сразу две стороны. API каталога WordPress.org очищает значение и превращает его в обычный идентификатор темы, а JavaScript в панели администратора сохраняет исходные специальные символы и вставляет строку в селектор без должного экранирования.

Подготовленная строка меняет логику селектора так, что штатный JavaScript WordPress добирается до настоящей кнопки установки темы и сам вызывает на ней событие click. Атакующему не нужны nonce или право install_themes. Уже авторизованный браузер администратора предоставляет необходимые разрешения от имени жертвы. Учётные записи Author и Editor такой сценарий запустить не могут.

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

Для демонстрации команда pwn.ai выбрала тему Mobile Repair Zone 2.5.4. В ней находился AJAX-обработчик без проверки nonce и прав пользователя. Обработчик принимал адрес пакета плагина, скачивал архив, распаковывал содержимое и подключал выбранный PHP-файл. После принудительной установки темы и загрузки её через Customizer атакующий получает возможность выполнить собственный PHP под учётной записью веб-сервера. Схожие ошибки с загрузкой исполняемых файлов уже приводили к захвату WordPress-сайтов через сторонние плагины.

Полная цепочка не является автономной удалённой атакой. Администратор должен быть авторизован и открыть специально подготовленный адрес, например из целевого фишингового письма. Другой вариант предполагает уже существующую XSS-уязвимость, которая заставит браузер администратора отправить запрос автоматически. Публичных подтверждений эксплуатации Click2Shell в реальных атаках пока нет.

WordPress закрыл исходную ошибку 17 сентября в версии 7.1.1. Разработчики начали экранировать идентификатор темы через $.escapeSelector() и ограничили селектор реальными карточками div.theme. Исправления также перенесли в поддерживаемые старые ветки WordPress. Для сайтов, где немедленное обновление невозможно, включённый DISALLOW_FILE_MODS мешает цепочке устанавливать новые темы и плагины.

Полный технический разбор pwn.ai содержит рабочий PoC и подробно показывает переход от принудительной установки темы к серверному PHP. На момент публикации отдельного CVE для основной ошибки Click2Shell ещё не было. WordPress сообщил исследователям, что идентификатор планируется присвоить.

Месяцем раньше та же pwn.ai нашла в WordPress другую цепочку, получившую название XSS2Shell. Там авторизованный администратор также становился ключевым звеном атаки, но первоначальная точка входа находилась в обработке данных на странице авторизации.

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

Параллельно опасные цепочки продолжают находить и в расширениях CMS. В сентябре две критические RCE обнаружили в The Events Calendar с сотнями тысяч потенциально затронутых установок. В отличие от Click2Shell, обе ошибки находились непосредственно в плагине и не требовали авторизованного администратора.

Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com
Реклама