Entrada

SSTI Lab 3

SSTI Lab 3

Skills

  • Server-side template injection using documentation

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

Este laboratorio es vulnerable a un Server Side Template Injection. Para resolver el laboratorio, hay que identificar el motor de plantillas, utilizar la documentación para averiguar cómo ejecutar comandos y luego eliminar el archivo morale.txt del directorio personal de Carlos. Para iniciar sesión en nuestra cuenta podemos usar las credenciales content-manager:C0nt3ntM4n4g3r


Resolución

Al acceder a la web nos sale esto

Hacemos click en My account y nos logueamos usando las credenciales content-manager:C0nt3ntM4n4g3r

Pinchamos sobre un artículo y vemos que podemos editar el texto pinchando en Edit template

Me llaman mucho la atención los objetos que están cargando en <p>Hurry! Only ${product.stock} left of ${product.name} at ${product.price}.</p>

Provocamos un error para identificar el nombre de la plantilla cargando un objeto inexistente, para ello debemos modificar el campo y pulsar el Preview

1
<p>Hurry! Only ${product.NoExiste} left of ${product.name} at ${product.price}.</p>

Si nos fijamos bien vemos que se está usando java y la plantilla se llama freemarker

Nos vamos a hacktricks https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#freemarker-java y probamos los payloads disponibles, los payloads básicos no han funcionado

Probamos más payloads y funcionan

1
2
<#assign ex = "freemarker.template.utility.Execute"?new()>${ ex("id")}
${"freemarker.template.utility.Execute"?new()("id")}

Listamos los archivos de nuestro directorio

Borramos el archivo morale.txt y completamos el laboratorio

Esta entrada está licenciada bajo CC BY 4.0 por el autor.