Плагин WP Statistics для Wordpress уязвим, обновляйте

Итак, исследователи Sukuri исследовали-исследовали да и нашли 300 000+ сайтов с уязвимостью, которая позволяет не только украсть все содержимое БД сайта, но и получить привелегированный доступ к сайту.

О чем речь  

Речь идет о плагине WP Statistics, который позволяет администраторам сайтов отслеживать и получать расширенную информацию о своем сайте - кстати, плагин довольно крутой!

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

И вот в этой красоте нашлась лазейка, из-за которой вы сможете потерять сайт (или посетителей).



Кто в зоне риска

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



Техническая информация

Wordpress позволяет владельцам сайтов, разработчикам тем и т.п. использовать так называемые shortcuts - отсылки к функциям, которые можно использовать в темах. Обычно это выглядит примерно так:

 [shortcode atts_1=”test” atts_2=”test”]

В плагине WP Statistics шорткаты тоже используются, и позволяют администратору просматривать информацию о пользователях путем вставки небольшого куска кода:

На картинке видно, что некоторые значения передаются как переменные параметры - и в этом нет ничего плохого, если бы эти параметры проверялись как следует. Но неет. Некоторые из вызываемых функций не проверяют права доступа, и разрешают выполняться под любым зарегистрированным пользователем. К таким, например, относится функция wp_statistics_searchengine_query() из “includes/functions/functions.php”, которую можно вызвать через AJAX с помощью встроенной функции Wordpress wp_ajax_parse_media_shortcode().

Что мы видим в коде? То, что в SQL запросы вставляются "сырые" данные, полученные от пользователя, без какой-либо проверки и очистки:

А как они туда попадают? Из поля provider в шорткате WP Statistics :) Злоумышленнику достаточно зарегистрироваться и отправить нужный ajax-запрос.



Что делать?

Обновляйте плагин скорее. Если нет возможности обновить - отключите. Если не хотите отключать - запретите пользователям регистрироваться. Если не хотите запрещать - настройте бекапы хотя бы! :)

Всем удачи!

Последнее изменение:


Крипто-кошельки для помощи и благодарности проекту:

Bitcoin адрес проекта: [[address]]

Перевод на сумму [[value]] BTC получен. Спасибо!.
[[error]]

Ethereum адрес проекта: [[address]]



Комментарии
Пожалуйста, авторизуйтесь, что бы оставить свой комментарий