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.
- Confirma que el parámetro objetivo refleja la entrada de forma consistente con renderizado de plantillas (p. ej. {{7*7}} devuelve 49).
- Ejecuta tplmap contra el endpoint y parámetro para identificar el motor y confirmar la inyección.
- Usa sus opciones integradas para intentar lectura de archivos o ejecución de comandos una vez confirmada la inyección.
- 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.