
В ходе анализа веб-сайта ecodotempo.com.br была обнаружена уязвимость класса «Межсайтовый скриптинг» (Stored Cross-Site Scripting, XSS). Данная уязвимость позволяет атакующему внедрять вредоносные скрипты в поля, которые впоследствии отображаются другим пользователям без надлежащей санитизации, в частности на главной странице неаутентифицированной (отключенной) области.
В ходе анализа веб-сайта ecodotempo.com.br была обнаружена уязвимость сохранённого межсайтового скриптинга (Stored XSS). Эта уязвимость позволяет злоумышленнику внедрять вредоносные скрипты в поля, которые впоследствии отображаются другим пользователям без надлежащей очистки, в частности на главной странице неавторизованной (отключённой) области.
ecodotempo.com.br/colecoes/itens/cadastrar_realizar.php
name="nome" и name="descricao"
В ходе анализа веб-сайта ecodotempo.com.br была обнаружена уязвимость сохранённого межсайтового скриптинга (Stored XSS). Эта уязвимость позволяет злоумышленнику внедрять вредоносные скрипты в поля, которые впоследствии отображаются другим пользователям без надлежащей очистки, в частности на главной странице неавторизованной (отключённой) области.
Внедрённый скрипт был постоянно сохранён в серверной части приложения и выполнялся в браузере любого посетителя, обратившегося к затронутой странице, без механизмов экранирования или защиты с помощью политики безопасности контента (Content Security Policy, CSP).
В ходе тестирования ecodotempo.com.br уязвимость Stored XSS была обнаружена именно в процессе создания элемента коллекции. Удалось внедрить вредоносную полезную нагрузку в поля имени или описания элемента коллекции при отсутствии активных механизмов защиты, таких как проверка ввода, фильтры на уровне кода, межсетевой экран веб-приложений (WAF) или заголовки безопасности HTTP.
После создания коллекции, содержащей вредоносный скрипт, выхода из системы и перехода на главную страницу коллекции, а затем перехода к зарегистрированному элементу и щелчка по нему, полезная нагрузка автоматически выполнилась в браузере, что привело к появлению всплывающего окна. В ходе тестирования это использовалось для демонстрации кражи файлов cookie. Такое поведение подтверждает отсутствие надлежащей очистки и реальную возможность выполнения произвольного скрипта в браузере жертвы. Пример см. в разделе с доказательствами ниже.
Примечание: Помимо кражи файлов cookie, эта уязвимость может быть использована для различных вредоносных целей, таких как перенаправление пользователей на вредоносные сайты, кража конфиденциальных данных, изменение содержимого страницы для фишинговых атак или выполнение действий от имени пользователя, как описано ранее в разделе о воздействии.
Наличие уязвимости сохранённого XSS на главной странице неавторизованной области ecodotempo.com.br представляет собой серьёзную угрозу безопасности. Поскольку внедрённый скрипт постоянно хранится и предоставляется каждому пользователю, который обращается к затронутой странице, это открывает путь к целому ряду атак на стороне клиента. Злоумышленник может использовать эту уязвимость для выполнения произвольного JavaScript в браузере ничего не подозревающих посетителей, потенциально крадя сессионные файлы cookie, перенаправляя пользователей на вредоносные сайты, выполняя действия от имени пользователей без их согласия или манипулируя содержимым страницы для фишинговых попыток. Поскольку уязвимость находится в общедоступной области, это увеличивает вероятность массовой эксплуатации, особенно автоматическими ботами или целевыми кампаниями, что может подорвать доверие пользователей и целостность платформы.
Чтобы устранить уязвимость сохранённого XSS, обнаруженную на главной странице неавторизованной области ecodotempo.com.br, необходимо предпринять следующие действия:
Все данные, вводимые пользователем, должны быть надлежащим образом очищены и проверены как на стороне клиента, так и на стороне сервера перед сохранением или отображением. В частности, любой ввод, который будет отображаться в HTML-контексте, должен иметь такие специальные символы, как <, >, ", ' и &, закодированные для предотвращения выполнения скриптов. Кроме того, приложение должно реализовывать кодирование вывода в зависимости от контекста, в который внедряются данные (HTML, JavaScript, атрибут, URL и т. д.).
Также настоятельно рекомендуется внедрить политику безопасности контента (CSP) для ограничения выполнения несанкционированных скриптов, а также отключить встроенные скрипты и загрузку внешних скриптов из недоверенных источников. Регулярные проверки кода и автоматическое тестирование безопасности (например, с помощью таких инструментов, как OWASP ZAP или Burp Suite) должны быть включены в жизненный цикл разработки для обнаружения и предотвращения подобных ошибок в будущем.
Наконец, любые уже сохранённые вредоносные полезные нагрузки должны быть выявлены и удалены из системы для устранения существующих рисков.