SKILLEMALL.ai

AF hunt-ssti

Поиск уязвимостей Server-Side Template Injection (SSTI) в Jinja2 (Flask/Django), Twig (Symfony), Freemarker (Java), ERB (Rails), Spring, Velocity, Mako, Thymeleaf, Smarty. Пробы обнаружения используют выражения с двойными фигурными скобками и выражениями, начинающимися с доллара, вычисляемые на стороне сервера. После определения движка, повышайте привилегии до RCE с помощью специфичных для движка шаблонов class-walker, callback-registrar или Execute-utility, описанных в раскрытых отчетах. Паттерны обнаружения: сообщения об ошибках указывают на движок, пустые или числовые вычисления указывают на режим выражений. Цели: шаблоны электронной почты, генераторы PDF/отчетов, функции предварительного просмотра CMS, страницы ошибок с пользовательским вводом. Используйте при поиске RCE через рендеринг шаблонов, когда контент показывает отпечатки движка, когда найдены конечные точки, которые составляют строки с пользовательским вводом перед рендерингом.

машинный переводПоказать оригиналСкрыть оригинал«Hunt server-side template injection (SSTI) across Jinja2 (Flask/Django…»

Hunt server-side template injection (SSTI) across Jinja2 (Flask/Django), Twig (Symfony), Freemarker (Java), ERB (Rails), Spring, Velocity, Mako, Thymeleaf, Smarty. Detection probes use double-curly and dollar-curly math expressions evaluated server-side. Once an engine is fingerprinted, escalate to RCE via the engine-specific class-walker, callback-registrar, or Execute-utility patterns documented in disclosed reports. Detection patterns: error messages reveal engine, blank or numeric eval reveals expression mode. Targets: email templates, PDF/report generators, CMS preview features, error pages with user input. Use when hunting RCE via template rendering, when content shows engine fingerprints, when finding endpoints that compose strings with user input before render.

elementalsouls/Claude-BugHunter Agent Skills автор: elementalsouls 1 файл тело ≈ 1 829 токенов Открыть источникgithub.com проанализирован 2 ч назад

Поиск уязвимостей Server-Side Template Injection (SSTI) в Jinja2 (Flask/Django), Twig (Symfony), Freemarker (Java), ERB (Rails), Spring, Velocity, Mako…

Как процесс F 43/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: 'id',shell=True,stdout=-1

ШаблонДанные и аналитикаРазработкаТексты и документытип и темы размечены автоматически по тексту скилла
JSON
Технический рейтинг
A
90/100
безопасность, качество, тесты
Безопасность 60%
100
Качество 40%
76
Прогон на моделях
не было
Процессный рейтинг
F
43/100
Не запустится
Скилл ссылается на файлы, которых нет в архиве: 'id',shell=True,stdout=-1
Инструменты и файлы вес 18
0
Результат и критерий готовности вес 14
0
Входы и предусловия вес 11
0
три самых слабых из десяти параметров · все десять

Как улучшить

  1. В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
Для прогона на моделях — необязательно
  • Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
  • spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.

Находки guard · 0

✓ Критических и высоких находок нет

Просканировано файлов: 1. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.

По спецификации Agent Skills

  • предупреждение missing-ref ссылка на отсутствующий файл: 'id',shell=True,stdout=-1
  • заметка frontmatter-key неизвестное поле фронтматтера "sources"
  • заметка frontmatter-key неизвестное поле фронтматтера "report_count"

Процессный рейтинг: все десять параметров 43/100

Не запустится. Скилл ссылается на файлы, которых нет в архиве: 'id',shell=True,stdout=-1
  • 0Инструменты и файлы. Не хватает 1 файла(ов): 'id',shell=True,stdout=-1
  • 0Результат и критерий готовности. Не сказано, что считать результатом
  • 0Входы и предусловия. Не сказано, что нужно иметь на входе
  • 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
  • 20Когда включается. Не сказано, при каком запросе скилл включается
  • 30Повторный запуск. Изменяющих операций: 3, без проверки текущего состояния
  • 100Шаги. Шагов: 13
  • 100Ошибки и развилки. Развилок: 3, есть раздел про ошибки
  • 100Согласованность. Имя и обязательные поля на месте
  • 100Стоимость исполнения. Тело инструкции 1829 токенов

Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.

Сигналы качества

  • +5В description нет примеров фраз, по которым скилл должен срабатывать
  • +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
  • +3Формат ответа не описан: модель каждый раз решает сама
  • +1Лицензия не указана
  • +2Инструкции на одном языке
  • +3Длина description 779 символов: достаточно сигнала, не съедает бюджет
  • +4Структура: 8 заголовков
  • +3Пошаговые инструкции: 13 пунктов
  • +4Есть примеры (10 блоков кода)

База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 76.