Атаки на Wordpress 4.7 (REST API)

За последние 3 дня наши «бортовые самописцы» зафиксировали рост эксплуатации обнаруженной недавно уязвимости Wordpress. На 28% всех сайтов (не только работающих под управлением CMS Wordpress), подключенных к нашей системе проактивной защиты, и на 57% Wordpress сайтов клиентов наблюдается попытка проведения веб-атаки с использованием уязвимости в публикации постов через механизм REST API с повышением привилегий. Под угрозой сайты, работающие под Wordpress 4.7 и 4.7.1. Если сайт не защищен или не обновлен до версии 4.7.2, то подобная атака завершается успешной заменой оригинального контента блога.

дефейс Wordpress

Все атаки выполняются автоматизированно скриптами. В подавляющем большинстве случаев инжекты произвольного кода ограничиваются страницами а-ля “дейфейс” или попытками хакерских групп самоутвердиться, оставляя отпечаток “Hacked By <хакерское имя>”. 

Используется  достаточно простой алгоритм внедрения произвольного кода или замены содержимого поста: хакерский бот запрашивает страницу http://сайт/index.php/wp-json/wp/v2/posts/, получает массив публикаций, берет первый элемент (это самая последняя публикация в Wordpress) и заменяет в ней контент на свой.

атака на REST API Wordpress

Выдержка из лога веб-атаки:

POST: http://сайт/index.php/wp-json/wp/v2/posts/1955

post[id] = 1955justrawdata
post[title] = Hacked By XwoLfTn
post[content] = Hacked By XwoLfTn - Tunisian Hacker

или

POST: http://сайт/index.php/wp-json/wp/v2/posts/1955

{ id:”1955jdfr4rawdata”, title:”Hacked By MuhmadEmad”, content:”Hacked By MuhmadEmad” } 

успешная атака на незащищенный REST API Wordpress

При успешной атаке содержимое поста с указанным идентификатором заменяется контентом, который передал хакер. Данные в запросе передаются в двух вариантах: как переменные POST или в формате json как raw post body.

Опасность атаки в том, что таким образом можно автоматизировать внедрение мобильных редиректов (например, по расписанию добавлять код, затем удалять его), спам-ссылки и SEO-контент, а если в Wordpress используются плагины, которые интерпретируют код как php, то это прямая дорога к RCE (удаленному исполнению кода).

Самый простой способ предотвратить внедрение кода – это обновить Wordpress до 4.7.2, где данная уязвимость была исправлена. Если же по какой-то причине это невозможно, мы бы рекомендовали на уровне веб-сервера или .htaccess файла заблокировать адреса, в которых встречается “/wp/v2/posts/”. Например,

RewriteEngine On
RewriteRule /wp/v2/posts/ - [F,L]

Если вы уже пострадали от данной атаки, напишите нам.