Entrada

SSTI Lab 5

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

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