¿Qué es SSTI?
La Server-Side Template Injection (SSTI) es una vulnerabilidad que ocurre cuando el input se incorpora de manera insegura en la plantilla del lado del servidor, permitiendo a los atacantes inyectar y ejecutar código en el servidor. Los motores de plantillas se suelen usar en aplicaciones web para generar HTML dinámico combinando plantillas fijas con datos dinámicos. Cuando estos motores procesan el input del usuario sin sanitización adecuada, se vuelven susceptibles a ataques SSTI.
Conceptos Clave de SSTI
- Generación de Contenido Dinámico: Los motores de plantillas reemplazan los placeholders con datos reales, permitiendo a las aplicaciones generar páginas HTML dinámicas. Este proceso puede ser explotado si no se sanitizan adecuadamente los inputs.
- Input del Usuario como Código de Plantilla: Cuando se tratan los inputs como parte del código de la plantilla, pueden introducir lógica maliciosa en el output renderizado, llevando a SSTI.
El núcleo de SSTI recae en el manejo indebido del input del usuario en las plantillas del lado del servidor. Los motores de plantillas interpretan y ejecutan expresiones incrustadas para generar contenido dinámico. Si un atacante puede inyectar payloads maliciosos en estas expresiones, pueden manipular la lógica del lado del servidor y ejecutar código arbitrario.
Flujo de un Ataque SSTI

Cuando los inputs del usuario se incrustan directamente en las plantillas sin la validación o escapado correspondiente, los atacantes pueden construir payloads que alteran el comportamiento de las plantillas. Esto puede llevar a acciones no anticipadas, incluyendo:
- Leer o modificar los archivos del lado del servidor.
- Ejecutar comandos de sistema.
- Acceder a información sensible.
