Уязвимость загрузки файлов в компоненте AdsManager в папку plupload
В последнее время попадаются сайты с одной и той же уязвимостью в AdsManager, в этой статье я расскажу, как найти и закрыть уязвимость на сайте.
Первым мне попались в логах следующие строки:
"POST /index.php?option=com_adsmanager&task=upload&tmpl=component HTTP/1.0" 200
"GET /tmp/plupload/yzb.php?input HTTP/1.0" 200
Итак, к нам на сайт через эксплоит загрузили шелл в папку tmp/plupload, и теперь с нашим сайтом можно сделать всё, что угодно.
В чем же заключается уязвимость? В следующей статье я более подробно воспроизведу атаку на сайт, здесь лишь оговорюсь, что при загрузке файлов отсутствует какая либо фильтрация.
Открываем файл components/com_adsmanager/controller.php и видим, что это действительно так:
$filename = $directory."/".basename($file['name']);
- нету никакой проверки расширения файлов.
Теперь перейдем к тому, как нам избавиться от проблемы. Самым простым методом будет обновить компонент до актуальной версии, где дыра немного прикрыта. Однако этот универсальный метод подходит не всем, так как у многих AdsManager прилично бывает модифицирован и обновление принесет проблемы с восстановлением функционала. Поэтому мы можем просто внести правки в код с новой версии касательно безопасности. Достаточно будет в файл контроллера добавить следующие строки после строки $filename = $directory."/".basename($file['name']);
$ext = strrpos($fileName, '.');
$fileName_b = strtolower(substr($fileName, $ext+1));
if (!in_array($fileName_b,array("jpg","jpeg","gif","png"))) {
exit();
}
Но мне не особо нравится это решение, по той причине, что здесь всё равно нету нормальной фильтрации типов файлов. Поэтому я рекомендую в папку tmp/plupload добавить защитный файл .htaccess с кодом:
# Здесь мы запрещаем доступ к файлам извне, можно заменить на запрет исполнения опасных файлов
Order Deny,Allow
Deny from All
# Чтобы предотвратить замену файла .htaccess (Спасибо решению с Revisium )
RewriteEngine On
RewriteRule ^tmp/ - [F]
--- # Андрей 07.05.2016 16:00 Установил AdsManeger пол года назад и недавно заметил, что мне в папку tmp заливают файлы. Сначала я их просто удалял, но потом случайно нашел статью про уязвимость в компоненте, сделал два варианта по защите сайта, через пару месяцев отпишусь.
--- 0 # Денис 11.11.2017 19:09 Добрый вечер, спасибо за статью! А не подскажите, как будет выглядеть код для htaccess и controller.php Если нужно ограничить все расширения кроме одного, например mp3, и ограничить размер загружаемого файла, например до 5 Mb Заранее спасибо!
--- 0 # Protect Your Site 12.11.2017 08:06 Добрый день, Денис! Вот в этой строке: Цитата: if (!in_array($fileName_b,array("jpg","jpeg","gif","png"))) { Как раз и указываются разрешенные расширения, а ограничения на рзамер загружаемого файла задаются у хостинга на сервере. Я бы советовал посмотреть, какая версия AdsManager используется, вполне возможно, что в новых версиях это можно отредактировать в админке в настройках, без правок ядра расширения. ---
За инфу спасибо: https://protectyoursite.ru/%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B/%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2-%D0%B2-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B5-adsmanager


Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2023-05-19 » Как повысить конверсию в интернет-магазине: 17 способов
- 2023-05-19 » Тренды в веб-дизайне в 2023 году
- 2023-05-19 » Как подключиться к серверу по VNC
- 2023-02-27 » Грамотная структура страницы сайта — основные элементы и советы
- 2023-02-07 » Маркетинговые исследования
- 2023-02-01 » Вывод сайта из-под фильтров
- 2023-02-01 » Проработка воронки продаж в Интернете
- 2023-01-26 » Установка и настройка Call tracking и Email tracking
- 2022-11-09 » 12 работающих формул продающих текстов
- 2022-11-09 » Дизайн сайта как SEO фактор ранжирования в 2022. Неочевидные нюансы в дизайне
- 2022-09-06 » Яндекс выложил в опенсорс фреймворк для ускорения разработки мобильных приложений
- 2022-08-18 » Как я могу перенаправить и переписать свои URL-адреса с помощью файла .htaccess?
- 2022-08-01 » Яндекс выложил в опенсорс исходный код и документацию фреймворка userver
- 2022-07-29 » Как выявить медленные SQL запросы?
- 2022-07-29 » Читали мое письмо или нет? Как проверить с помощью php — Записки программиста
- 2022-07-26 » Я потратил 30 дней на анализ лучших кнопок призыва к действию, которые смог найти в Интернете
- 2022-06-29 » ТОП-15 актуальных трендов интернет-маркетинга для России: эксперт рассказал о тенденциях рынка в 2022 году
- 2022-06-21 » Почему «99 франков» — это не лучшая ценовая стратегия, и как теперь «рисовать» привлекательные цены
- 2022-06-16 » Пушкинская карта и Культура.РФ на Вашем сайте. Подключим к действующему сайту и(или) сделаем новый!
- 2022-05-18 » Анализ рынка интернет-маркетинга в РФ от Яндекс Дзен
- 2022-05-18 » Итоги развития рекламного рынка РФ за 2021 год по версии АКАР
- 2022-05-18 » Потребление мобильного трафика в Рунете достигло рекордных значений
- 2022-05-17 » Yappy, TenChat и другие. Обзор новых русских соцсетей и их возможностей
- 2022-05-17 » Реклама малого бизнеса. Разбор доступных каналов, инструментов аналитики и терминов
- 2022-05-16 » Зачем нужен счетчик Top@Mail.ru и как установить на сайт пиксель myTarget
- 2022-04-25 » Несмотря на отсутствие блокировки: в Youtube потеряли более 20% активных русскоязычных авторов
- 2022-04-25 » Чат-бот – что это такое
- 2022-04-19 » Комплексная услуга по разработке сайта или Интернет-магазина БЕСПЛАТНО!!!
- 2022-03-17 » Импорт большого дампа БД в OpenServer через консоль
- 2022-02-25 » Возможности и преимущества Google Analytics 4
Неудача — это не единичное внезапное событие. Ваш провал не возникает внезапно. Напротив, неудача появляется, когда вы совершаете одни и те же ошибки изо дня в день. Джим Рон |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.