😶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



