Инъекция серверных шаблонов
Что такое Инъекция серверных шаблонов?
Инъекция серверных шаблоновАтака, при которой синтаксис шаблонизатора попадает в недоверенный ввод и приводит к выполнению кода на сервере при рендеринге шаблона.
Инъекция серверных шаблонов (SSTI) возникает, когда пользовательский ввод склеивается с шаблоном, обрабатываемым движком вроде Jinja2, Twig, Freemarker, Velocity или ERB. Многие движки допускают в выражениях обращение к объектам и вызов методов, поэтому пейлоады вида {{7*7}} или ${...} могут читать переменные среды, обходить граф объектов и в конечном счёте выполнять произвольный код или системные команды. Последствия — от утечки данных до полного захвата сервера. Защита: передавать пользовательские данные только как переменные шаблона (а не как сам шаблон), использовать песочничные или logic-less движки, ограничивать имена шаблонов белым списком, применять контекстную кодировку вывода и запускать приложение с минимальными правами.
● Примеры
- 01
Поле имени, рендеримое через Jinja2, возвращает 49 при вводе {{7*7}}, что подтверждает SSTI.
- 02
Инъекция в шаблон Freemarker вызывает Runtime.exec и запускает обратный шелл на сервере.
● Частые вопросы
Что такое Инъекция серверных шаблонов?
Атака, при которой синтаксис шаблонизатора попадает в недоверенный ввод и приводит к выполнению кода на сервере при рендеринге шаблона. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает Инъекция серверных шаблонов?
Атака, при которой синтаксис шаблонизатора попадает в недоверенный ввод и приводит к выполнению кода на сервере при рендеринге шаблона.
Как защититься от Инъекция серверных шаблонов?
Защита от Инъекция серверных шаблонов обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Инъекция серверных шаблонов?
Распространённые альтернативные названия: SSTI, Инъекция шаблонов.