Está en la página 1de 12

SSTI

SERVER-SIDE TEMPLATE
INJECTION
JUAN CARLOS PIÑEROS GARCÍA
JIMMY ALEJANDRO ORTIZ PELÁEZ
¿QUÉ ES SSTI?

• La inyección de plantilla del lado del servidor es una vulnerabilidad en


la que el atacante inyecta de manera maliciosa una entrada en una
plantilla para ejecutar comandos del lado del servidor. Esta se
produce cuando se incrusta una entrada de usuario no válida en el
motor de plantillas, lo que generalmente puede conducir a la
ejecución remota de código (RCE)
¿QUÉ ES SSTI?

• Algunas aplicaciones web utilizan motores de plantillas para separar la


presentación visual (HTML, CSS…) de la lógica de la aplicación (PHP,
Python…). Estos motores permiten la creación de archivos de plantilla
en la aplicación. Cuando se utiliza la aplicación, el motor de plantillas
reemplazará las variables contenidas en esta con valores y se
transformará en una página web (HTML) y luego la enviará al cliente.
¿QUÉ ES SSTI?
• Se produce una vulnerabilidad
de inyección de plantilla del lado
del servidor (SSTI) cuando los
datos del usuario se incrustan
directamente en una plantilla y
luego el motor de plantilla los
interpreta. Esto permite a los
atacantes inyectar directivas
arbitrarias para manipular el
motor de plantillas.
¿QUÉ SON LAS PLANTILLAS DEL
LADO DEL SERVIDOR?
• Las plantillas del lado del servidor proporcionan un método más fácil
de administrar la generación dinámica de código HTML. La gran
ventaja es que puede generar páginas HTML dinámicas que, en el
lado del servidor, se leen como HTML estático
¿EN QUÉ SITUACIONES SE PRODUCE
ESTA VULNERABILIDAD?
• El origen del problema es que los datos transmitidos por los usuarios
son interpretados directamente por el motor de plantillas (como datos
dinámicos), en lugar de integrarse como datos fijos. Este tipo de
vulnerabilidad se encuentra con mayor frecuencia en sitios que
desean ofrecer funciones de personalización avanzadas, como wikis,
blogs, aplicaciones de marketing o CMS. Una vulnerabilidad SSTI
suele ocurrir cuando se modifica una plantilla para obtener un
resultado personalizado para una necesidad específica y los usuarios
tienen acceso a las funciones de modificación de la plantilla.
¿CÓMO ENCONTRAR UNA
VULNERABILIDAD SSTI?
• Las fallas de SSTI se descubren con
menos frecuencia, ya que son menos
conocidas y menos investigadas que las
fallas de Cross Site Scripting (XSS). Su
identificación se realiza en dos partes:
• Una primera fase de detección de la
vulnerabilidad.
• Una segunda fase para identificar el
motor de plantillas utilizado.
DETECTAR LA VULNERABILIDAD

• Para identificar las vulnerabilidades de SSTI, use una carga útil de


Polyglot compuesta por caracteres especiales que se usan
comúnmente en expresiones de plantilla para confundir la
plantilla. “${{<%[%'"}}%\”.
• En caso de una vulnerabilidad, se puede devolver un mensaje de
error o el servidor puede generar la excepción. Esto se puede usar
para identificar la vulnerabilidad y el motor de plantillas en uso.
IDENTIFICAR EL MOTOR DE
PLANTILLAS UTILIZADO
• Para identificar la vulnerabilidad,
se puede seguir la siguiente lista
de tareas pendientes:
• Detectar dónde existe la
inyección de plantilla
• Identificar el motor de plantillas
y validar la vulnerabilidad
• Seguir los manuales para el
motor de plantilla específico
• Explotar la vulnerabilidad
¿CÓMO PREVENIR DEFECTOS DE
SSTI?
Desinfección Sandboxing Lógica menos plantilla

 Esto implica detectar y  El objetivo es proporcionar un  Existen plantillas de motor sin


eliminar contenido entorno cerrado, donde los lógica, que separan la
potencialmente malicioso módulos y características representación visual y la
antes de usarlo en la plantilla. riesgosos están interpretación del código
Por lo tanto, es necesario deshabilitados. Si se tanto como sea posible.
analizar de manera eficiente interpretan los datos
los datos transmitidos por los proporcionados por el
usuarios. Para ello, son usuario, no se puede
posibles varios medios (uso proporcionar acceso a otras
de expresiones regulares, funciones o datos.
listas blancas de expresiones
autorizadas, etc.).
HERRAMIENTAS AUTOMATIZADAS

• Tplmap ayuda en la explotación de las vulnerabilidades de inyección


de código y de plantilla del lado del servidor con varias técnicas de
escape de sandbox para obtener acceso al sistema operativo
subyacente, la herramienta y su conjunto de pruebas están
desarrollados para investigar la clase de vulnerabilidad SSTI y para
usarse como herramientas de seguridad ofensivas durante las
pruebas de penetración de aplicaciones web.
LINKS DE INTERÉS
• Tplmap
• Template-engines-special-vars
• Server Side Template Injection
• WebsitesVulnerableToSSTI
• Online FreeMarker Template
Tester
• Remediación SSTI
• Exploits

También podría gustarte