7 Февраля, 2017

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

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




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

Используется  достаточно простой алгоритм внедрения произвольного кода или замены содержимого поста: хакерский бот запрашивает страницу http://сайт/index.php/wp-json/wp/v2/posts/ , получает массив публикаций, берет первый элемент (это самая последняя публикация в 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” }




При успешной атаке содержимое поста с указанным идентификатором заменяется контентом, который передал хакер.

Данные в запросе передаются в двух вариантах: как переменные 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]


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