Неограниченная загрузка файлов в функции отзывов об отелях в QloApps версии 1.7.0 и более ранних позволяет удалённым неаутентифицированным злоумышленникам добиться удалённого выполнения кода.
🎯 Затронутая конечная точка
/module/qlohotelreview/default
⚠️ Корневая причина
Уязвимость существует из-за:
Отсутствия проверки расширения файлов.
Выполнения загруженных файлов напрямую сервером.
Отсутствия проверок аутентификации и авторизации на конечной точке.
Эта уязвимость приводит к полной потере конфиденциальности, целостности и доступности (триада CIA).
🛠️ Доказательство концепции (PoC) для QloApps версии 1.7.0
Нам нужны действительные id_order и Ajax-токен для запроса к уязвимой конечной точке. Для id_order мы вручную перебираем его, начиная с 1, либо создаём гостевую учётную запись и бронируем номер, чтобы получить этот id_order. Ajax-токен можно получить на любой странице номера отеля.
1. Получение Ajax-токена
2. Оставляем отзыв об отеле и загружаем нашу подготовленную веб-оболочку image+php.