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