The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Неосмотрительное использование плагина jQuery-File-Upload де..."
Отправлено opennews, 23-Окт-18 22:40 
В плагине jQuery-File-Upload (https://github.com/blueimp/jQuery-File-Upload/) выявлена (https://blogs.akamai.com/sitr/2018/10/having-the-security-ru...) поучительная уязвимость CVE-2018-9206 (http://www.vapidlabs.com/advisory.php?v=204), показавшая удивительную беспечность web-разработчиков и web-администраторов. jQuery-плагин jQuery-File-Upload предоставляет функциональный web-виджет для организации загрузки файлов на сайты, поддерживающий групповую загрузку, индикатор прогресса и возобновление прерванных загрузок. Основная функциональность jQuery-File-Upload реализована на JavaScript и выполняется на стороне браузера, при этом в состав также входит набор примеров серверных обработчиков (https://github.com/blueimp/jQuery-File-Upload/tree/master/se...) для сохранения отправляемых файлов.


Суть уязвимости в том, что в предлагаемых серверных обработчиках полностью отсутствовали фильтры для блокирования загрузки потенциально опасных типов контента и загружаемые файлы сохранялись на сервере под исходными именами, которые определял пользователь на сайте. Данные загружались в каталог "./files", находящийся в рабочей иерархии каталогов web-сервера. Таким образом, при использовании предлагаемых сервреных обработчиков, пользователь мог сохранить любые типы файлов, например, "text.php", которые сохранялись в публично доступной директории и становились видимыми для внешних запросов (например, загруженный "text.php" можно было получить запросив "http://example.com/files/test.php").


В ситуации, если на сайте используется PHP и включено выполнение php-файлов во всей иерархии каталогов, подобный запрос без должного ограничения доступа к каталогу "./files" приведёт к выполнению кода сохранённого в файле test.php скрипта на стороне сервера, что позволяет полностью получить контроль за сайтом. Основной ошибкой разработчика jQuery-File-Upload стало то, что он не стал ограничивать допустимые для сохранения типы файлов, а попытался включить в поставку ".htaccess (https://github.com/blueimp/jQuery-File-Upload/blob/master/se...)", устанавливающий обработчик по умолчанию ("SetHandler default-handler", "ForceType application/octet-stream").


Разработчик jQuery-File-Upload почему-то полагал, что на всех web-серверах всегда включена обработка ".htaccess" и активен модуль mod_headers. В обсуждении разработчик дополнения попытался оправдаться (https://news.ycombinator.com/item?id=18267309), что на момент написания плагина по умолчанию в Apache httpd для всех каталогов выставлялась опция "AllowOverride All (https://httpd.apache.org/docs/2.2/en/mod/core.html#allowover...)", но начиная с выпуска  2.3.9 она была незаметно заменена на "AllowOverride None (https://httpd.apache.org/docs/2.4/en/mod/core.html#allowover...)".


Но данное объяснение не выдерживает критики, так как ветка 2.3.x являлась тестовой и сама по себе не использовалась на практике, а выступала основой для формирования следующего значительной ветки Apache httpd  2.4, в которой указанное поведение было документировано (http://httpd.apache.org/docs/2.4/upgrading.html) и преподносилось как одно из изменений для повышения безопасности и производительности. Кроме того, решение о включении или отключении по умолчанию ".htaccess" всегда лежало на операторах хостинга и мэйнтейнерах пактов в дистрибутивах, поэтому и во времена до появления Apache httpd  2.4 нельзя было с уверенностью утверждать, что .htaccess везде будет работать.


За время своего существования плагин jQuery-File-Upload был вошёл (https://www.theregister.co.uk/2018/10/22/jquery_file_flaw/) в состав сотен  web-приложений и дополнений к системам управления web-контентом, и лишь единицы догадались ограничить список допустимых для загрузки файлов. В настоящее время на GitHub репозиторий jQuery-File-Upload насчитывает 7843 форков, проверка (https://github.com/lcashdol/Exploits/tree/master/CVE-2018-9206) 1000 из которых показала, что лишь 36 содержат должные исправления, блокирующие уязвимость.

Судя по всему, проблема уже давно известна в кругах атакующих, так как в сети найдено несколько руководств, первое из которых датируется 2015 годом, с демонстрацией взломов тех или иных систем через загрузку php-файла и его последующего открытия из каталога "./files". Всем web-мастерам рекомендуется срочно проверить наличие блокировки доступа к каталогу "./files" для внешних запросов и при необходимости внести изменения, отключающие выполнение PHP-скриптов в данной директории, на уровне настроек web-сервера.


URL: https://blogs.akamai.com/sitr/2018/10/having-the-security-ru...
Новость: https://www.opennet.ru/opennews/art.shtml?num=49483

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру