Буквально на днях вышло критическое обновление безопасности Joomla 3.6.4, исправляющее уязвимости CVE-2016-9081, CVE-2016-8869 и CVE-2016-8870. Однако хакеры не дремлют, и сразу после выхода патча изучили дыры и написали ботов для эксплуатации эксплоита. Так что вполне реально, что нас ждут массовые взломы сайтов впереди.

Уязвимость регистрации пользователей Joomla 3 на практике
Уязвимость регистрации пользователей Joomla 3 на практике

 Данные потенциальные угрозы не зря привлекли внимание злоумышленников, в отличие от предыдущих уязвимостей безопасности, в которых понадобятся или дополнительные условия для осуществления атаки либо брешь не предоставляет особой ценности для взлома всего сайта, именно в этот раз все намного серьёзнее. CVE-2016-8869 позволяет зарегистрировать пользователя с повышенными правами, CVE-2016-8870 поможет обойти проблему, если регистрация запрещена - в итоге запрет регистрации не защищал от уязвимости, а на закуску CVE-2016-9081 позволит сменить пароль пользователя либо назначить ему права администратора.

Согласитесь, после создания учетной записи с правами суперпользователя, взлом сайта идёт по давно известному сценарию: загружается через расширения шелл, с помощью которого атакующий получает полный доступ к управлению. Единственной преградой может стать двухэтапная авторизация в админку, именно поэтому данный пункт идёт обязательным в моей установки защиты на сайт. Для тех, кто не знает, про какой вариат я говорю, советую обязательно почитать материал "Защищаем админку Joomla от посторонних посетителей"

Давайте детально рассмотрим, что приводит к таким последствиям. Как я говорил в новости про патч, в релизе джумлы 3.6.4 была удалена из  components/com_users/models/registration.php функция регистрации. Давайте глянем более детально код:

$params = JComponentHelper::getParams('com_users');

// Initialise the table with JUser.
$user = new JUser;
$data = (array) $this->getData();

// Merge in the registration data.
foreach ($temp as $k => $v)
{
$data[$k] = $v;
}

Как мы видим, ничего не мешает нам изменить массив данных при регистрации. К примеру, по умолчанию права пользователя соотносятся двумерным массивом, поэтому если составим запрос на уязвимую регистрацию

POST /index.php/component/users/?task=registration.register HTTP/1.1

и в тело запроса добавим строки boundary:

Content-Disposition: form-data; name="user[groups][]"

7

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

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

Данный материал предоставлен в ознакомительных целях и не является пособием для взлома. Некоторые данные здесь были специально  опущены.

 

Добавить комментарий