Канал «Пентестинг & Security QA & SDET» опубликовал two-частный разбор уязвимости SSTIi — Server-Side Template Injection. Она возникает, когда пользовательский ввод попадает в серверный шаблон и обрабатывается не как текст, а как часть кода шаблонизатора, что в отдельных случаях может привести к выполнению произвольного кода на сервере.
Во втором посте разбирается ответ на предыдущую тестовую задачку: правильный вывод — приложение может быть уязвимо к SSTI, если оно необычно реагирует на пользовательский ввод, отличаясь от обычного вывода текста.
- Шаблонизаторы используются для динамического формирования HTML-страниц: вывод имени пользователя, списков товаров, сообщений и уведомлений
- Названы популярные шаблонизаторы: Jinja2i (Python), Twig (PHP), Freemarker (Java), Smarty, Velocity
- Последствия SSTI: получение конфиденциальной информации, раскрытие внутренних данных приложения, обход ограничений, выполнение нежелательных действий на сервере, в отдельных случаях — произвольный код
- Рекомендации по защите: не передавать пользовательский ввод как часть шаблона, использовать безопасные механизмы передачи данных, обновлять библиотеки и шаблонизаторы, разделять пользовательские данные и логику шаблонов
- По данным источника, SSTI встречается значительно реже, чем SQL Injection или XSSi, но её влияние может быть серьёзнее
- Первый тревожный сигнал для пентестера — необычная реакция приложения на ввод, отличающаяся от обычного вывода текста; это не доказательство SSTI, но повод для дальнейшей проверки
- Совет: искать SSTI стоит в местах динамической генерации контента — приветствиях, профилях пользователей, шаблонах писем, страницах ошибок и отчётах
Обсуждение
0Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖