SSTI

Crítico

Server-Side Template Injection

Definición

Server-Side Template Injection (SSTI) ocurre cuando la entrada del usuario se inserta directamente en una plantilla del servidor (Jinja2, Twig, Freemarker, etc.) sin sanitización. El atacante puede inyectar expresiones del motor de plantillas para ejecutar código arbitrario en el servidor.

Impacto

Ejecución remota de código (RCE) en el servidorLectura de archivos del sistemaAcceso a variables de entorno y secretosCompromiso total del servidorMovimiento lateral en la red interna

Ejemplos

Detección de SSTI con polyglot

Primero se detecta si existe SSTI usando expresiones matemáticas simples. Si el servidor devuelve el resultado calculado (49), se procede a identificar el motor de plantillas y usar payloads específicos para obtener ejecución de código.

# Payload de detección (funciona en múltiples motores)
{{7*7}}
${7*7}
<%= 7*7 %>

# Si la respuesta muestra "49", el motor de plantillas está procesando la entrada

# Jinja2 (Python) - RCE
{{config.__class__.__init__.__globals__['os'].popen('id').read()}}

# Twig (PHP) - RCE
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("whoami")}}

Practica SSTI con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica
818

hunters entrenando

56

labs de reportes reales

1326

completaciones

$231.410

en bounties practicados

34 flags capturadas esta semana·Reportes reales de HackerOne · Bugcrowd · Intigriti·Sin permanencia·Academy gratis
BBLabs · bug bounty en español

Deja de leer sobre bugs y empieza a cazarlos

Crea tu cuenta gratis y practica sobre labs basados en reportes reales que pagaron miles de euros. La Academy es gratis para siempre.

Sin tarjeta · Academy gratis · cancela cuando quieras