SSTI Lab 5
Skills
- Server-side template injection with information disclosure via user-supplied objects
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio
es vulnerable
a un Server Side Template Injection
debido a la forma en que se pasa un objeto
a la plantilla
. Esta vulnerabilidad
puede ser explotada
para acceder a datos sensibles
. Para resolver el laboratorio, hay que obtener
y enviar
la api key
del framework
. Podemos iniciar sesión
en nuestra cuenta utilizando las siguientes credenciales: content-manager:C0nt3ntM4n4g3r
Resolución
Al acceder
a la web
nos sale esto
Pulsamos en My account
y nos logueamos
usando las credenciales content-manager:C0nt3ntM4n4g3r
Pinchamos en View details
en un artículo
Pulsamos en Edit Template
Vemos que hay objetos
cargando
Nos dirigimos a https://cheatsheet.hackmanit.de/template-injection-table/, copiamos el primer payload
y pulsamos en Preview
Nos arroja este error
y vemos que se está usando django
como template
Nos dirigimos a PayloadsAllTheThings
y al apartado de SSTI (Server Side Template Injection)
de Python
https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/Python.md y mediante un payload
obtenemos información del template
He probado el payload {{ messages.storages.0.signer.key }}
pero no
ha funcionado
, por lo tanto he buscado más payloads
y he encontrado uno que ha funcionado en esta web
https://www.wallarm.com/what/server-side-template-injection-ssti-vulnerability, si no hubiéramos encontrado nada de utilidad deberíamos haber consultado
la documentación
de django
https://docs.djangoproject.com/en/5.1/ref/settings/ . Gracias a esta inyección podemos obtener la Secret Key
de django
Pulsamos en Submit solution
y enviamos la Secret Key
obtenida