Уязвимости и их устранение. Защита от разных способов взлома.

Уязвимость файлового менеджера в Joomla1.5x-3.1x

alex » 11 окт 2013, 15:48

В начале Августа 2013 была обнаружена серьёзная уязвимость в стандартном загрузчике файлов Joomla.
Уязвимость позволяет пользователю, имеющему доступ к медиа-менеджеру, загрузить файл с расширением запрещенного типа с точкой в конце.
Например "file.php."
В результате недостаточной обработки в методе JFile::makeSafe() точка в конце остается, затем в методе MediaHelper::canUpload() метод JFile::getExt возвращает расширение файла как пустую строку, что позволяет миновать проверку (в Joomla 1.5x файл /administrator/components/com_media/helpers/media.php):
Код: Выделить всё
$format = strtolower(JFile::getExt($file['name']));
      $allowable = explode( ',', $params->get( 'upload_extensions' ));
      $ignored = explode(',', $params->get( 'ignore_extensions' ));
if (!in_array($format, $allowable) && !in_array($format,$ignored))  // Обычно $ignored это массив из одного пустого элемента
      {
         $err = 'WARNFILETYPE';
         return false;
      }
..............
      

Т. к. обычно $ignored это массив из одного пустого элемента, то условие не выполняется и файл "file.php." загружается, соответственно, в директорию для загрузок, которая обычно "/images/stories/".
Если все это происходило на сайте, работающем под управлением веб-сервера Apache, то здесь используется его особенность при определении mime-типа файла отбрасывать неизвестные расширения, поэтому, если Apache не настроен как-то специфично в этом плане, то файл "/images/stories/file.php." будет выполнен как php-скрипт.
Еще хочется заметить, что из-за панической боязни взломов как и всего неизвестного, а также трудностей перевода, на форумах появились сообщения что это уязвимость вида "возможность загрузки исполняемого файла на сервер неавторизованным пользователем".
Это не так. Для эксплуатации уязвимости у пользователя должны быть права доступа к медиаменеджеру.
В Joomla 1.5x по умолчанию такие права есть только у группы "авторы" и выше. Т. е. если такие права не давались простым зарегистрированным пользователям, то риск взлома снижается на порядки.
Вот патч для Joomla 1.5x, от http://joomlacode.org
UploadFix15v3.zip
Патч для классов JFile и MediaHelper Joomla 1.5x
(6.28 Кб) Скачиваний: 773
alex
Администратор
 
Сообщения: 56
Зарегистрирован: 17 апр 2010, 00:45

Вернуться в Безопасность