Server-side template injection (SSTI)

Я исследую веб‑безопасность и делюсь практическими разбориками уязвимостей: от CSRF и XXE до Server‑Side XSS, race conditions и обходов CSP. Пишу чек‑листы атак и защиты, редкие кейсы из практики и мысли о мышлении пентестера. Только прикладной AppSec, понятные примеры и то, что реально встречается в проде. Учимся охотиться, пока на нас не охотятся.

sstiserver-side template injectionвеб-безопасность

😶Server-side template injection - это атака, в которой злоумышленник может использовать собственный синтаксис для внедрения вредоносной полезной нагрузки в шаблон на стороне сервера.

Типичная атака начинается с обнаружения фреймворка шаблонизации, на котором работает приложение через information disclosure в запросах/приложении, либо же обычный перебор.

☺️ Тип:
Web, Server-Side.

Могут отличаться в зависимости от фреймворка шаблонизации, используемого приложением. Есть очень хороший репозиторий со всевозможными полезными нагрузками для данной атаки.

☺️ Пример полезной нагрузки:
https://example.com/profile?user={{7*7}}

☺️ Влияние:
Почти гарантированно ведет к исполнению произвольного кода (RCE).

☺️ Как защититься?
Натболее эффективно - не разрешать пользователям вносить изменения в шаблон, а также использовать последние версии фреймворков-шаблонизаторов и безопасные конструкции.
В качестве альтернативных мер - использовать шаблонизаторы "без логики", использовать песочницы (sandbox) для исполнения пользовательского кода или использовать шаблонное окружение в изолированной среде/контейнере (в данном случае мы смиряемся с тем, что пользователь может исполнять команды и препятствуем влиянию, которое он может получить).

В "боевом" приложении я бы сказал, что найти что-то такое почти нереально, если, конечно, вы не копаете в сторону 0-day. Причина проста - большинство фреймворков по умолчанию запатчены и предлагают использование безопасных конструкций (даже если вы попросите chatGPT написать вам какое-то простое приложение, оно вероятнее всего уже будет защищено). В таком случае, для успешной атаки остается надеяться на незапатченые приложения, ошибки разработчиков, логические ошибки и чудо исследователей, откапывающих 0-day в шаблонизаторах.

#edu #vuln #web #ssti

Логотип SSTI: стилизованная иконка с вертикальными столбцами и подписью «SSTI — Server‑Side Template Injection», иллюстрация темы уязвимости шаблонов.
Иллюстративный логотип для темы Server‑Side Template Injection (SSTI).

Читайте так же