
Уязвимость в Data Illusion Survey Software Solutions NGSurvey v2.4.28 и ниже позволяет злоумышленникам вызвать отказ в обслуживании (DoS) с помощью специально созданного опроса.
ngSurvey версии 2.4.28 и ниже уязвим к отказу в обслуживании, если опрос содержит «Текстовое поле», «Поле комментария» или «Контактные данные». Проблема существует, потому что поля не включают ограничение на количество символов. Злоумышленник может отправить бесконечное количество символов в эти поля. Во время тестирования docker-приложение аварийно завершалось при отправке запроса. В других случаях ответ на опрос всё равно отправлялся. Когда администратор ngSurvey пытается просмотреть данные респондента или выполнить экспорт, веб-браузер использует чрезмерный объём оперативной памяти или сервер возвращает внутреннюю ошибку (500). Это делает данные опроса недоступными, по крайней мере, через веб-интерфейс. Даже если администратор ngSurvey устанавливает ограничение на количество символов в ответе, эксплуатация всё равно возможна, поскольку проверка выполняется только на стороне клиента (браузера).
Примечания: Вопрос типа «ползунок» также может быть уязвим при использовании большого целого числа вместо строки. Это не удалось подтвердить в моём локальном окружении.
dospayload (подойдёт любая строка, но для демонстрации я буду использовать эту).import requests добавьте следующий код: dospayload= "A" * 123456789.burp0_json. Он будет выглядеть так: "value" : "dospayload"."value" : dospayload.Финальный код должен выглядеть так:

Я не нашёл способа отличить текстовые поля или поля комментариев от других типов ответов (одиночный выбор, выпадающий список и т.д.). Полагаю, что они идентифицируются приложением по своему ID. Если вы найдёте способ написать работающий скрипт, который принимает URL на вход и выполняет шаги эксплуатации, я буду рад сослаться на него.