Nuevos labs cada semana — Accede a todos desde 5€/mes

Labs de SSTI

Server-Side Template Injection (SSTI)

¿Qué es SSTI?

La SSTI ocurre cuando entrada del usuario se concatena en un template renderizado server-side (Jinja2, Twig, FreeMarker, Velocity, Handlebars). Casi siempre escala a RCE porque los engines de template tienen acceso al runtime del lenguaje host.

¿Por qué practicar SSTI?

SSTI es de las vulnerabilidades de mayor impacto: detección rápida con `{{7*7}}` o `${7*7}`, escalada casi garantizada a RCE. Aparece en emails templated, error pages personalizadas y CMS configurables. Bounties P1 frecuentes en programs maduros.

¿Qué aprenderás con los labs de SSTI?

Aprenderás el flow de detección (basic + polyglot payloads), identificación del engine (Jinja2 vs Twig vs FreeMarker tienen syntaxis distinta), escalada a RCE específica por engine (`__class__.__mro__` en Python, `Runtime.getRuntime()` en Java), y bypass de sandboxes débiles.

Tipos de SSTI que cubrimos

  • Jinja2 / Flask

    {{7*7}} → 49. Escalada con {{config.__class__.__init__.__globals__[...]}} → os.system.

  • Twig / Symfony

    {{7*7}} → 49. Escalada con {{_self.env.registerUndefinedFilterCallback('exec')}}.

  • FreeMarker / Velocity

    Java-based. ${7*7} o ${'a'?upper_case}. RCE via freemarker.template.utility.Execute.

  • Handlebars / Node

    Más restrictivo, pero escalable con prototype pollution o helpers expuestos.

Empieza con labs de SSTI

Practica Server-Side Template Injection (SSTI) con labs basados en reportes reales. En español. Desde 5€/mes.

Empieza con el primer lab de SSTI