Saltar al contenido
OPS // KITitspentest.sh

X-TPL

tplmap

Automatiza la detección y explotación de inyección de plantillas del lado servidor (SSTI).

Sitio oficialVolver al catálogo

RESUMEN

tplmap inyecta una serie de payloads con sintaxis de plantillas en un parámetro e inspecciona la respuesta para identificar qué motor de plantillas (Jinja2, Twig, Freemarker, Smarty y más, en Python, PHP, Java, Node y Ruby) lo está renderizando y cómo está configurado. Una vez confirma la inyección, puede escalar automáticamente hacia lectura de archivos, escritura de una webshell o una reverse shell completa, según lo que permita el motor en su sandbox.

Cumple para SSTI un rol similar al que sqlmap cumple para inyección SQL: convierte una búsqueda manual y específica de motor en un flujo scripteado de detección y luego explotación a través de un amplio rango de frameworks.

CASOS DE USO

Casos de uso en un engagement

  • 01

    Confirmar si un parámetro que refleja sintaxis de tipo plantilla es realmente vulnerable a SSTI.

  • 02

    Identificar qué motor de plantillas y lenguaje usa una aplicación sospechosa.

  • 03

    Escalar una SSTI confirmada a lectura de archivos o ejecución remota de código para demostrar impacto real.

  • 04

    Probar automáticamente varios motores de plantillas cuando no se conoce el framework subyacente.

PRIMEROS PASOS

Cuando un parámetro parece renderizarse a través de un motor de plantillas del lado servidor, para confirmar SSTI y medir hasta dónde escala.

  1. Confirma que el parámetro objetivo refleja la entrada de forma consistente con renderizado de plantillas (p. ej. {{7*7}} devuelve 49).
  2. Ejecuta tplmap contra el endpoint y parámetro para identificar el motor y confirmar la inyección.
  3. Usa sus opciones integradas para intentar lectura de archivos o ejecución de comandos una vez confirmada la inyección.
  4. Documenta el payload exacto y el motor para que el hallazgo sea reproducible en el informe.
tplmap.py -u 'https://target.com/page?name=John'

ANTES DE USARLA

Qué revisar antes de lanzarla

Los payloads de ejecución de comandos y lectura de archivos corren código real en el servidor — escala hasta ahí solo cuando el alcance y las reglas del engagement lo permitan explícitamente.

Está poco mantenido respecto al ritmo de actualización de los motores de plantillas, así que puede fallar con motores nuevos o configuraciones en sandbox; puede seguir haciendo falta un payload manual.

El fingerprinting agresivo puede generar errores visibles para monitoreo o WAFs — coordina el timing en objetivos sensibles.

SIGUE EXPLORANDO

Ver toda la fase →