Cuando seleccionamos un dominio como objetivo, y en la toma de huellas dactilares encontramos que el aplicaci贸n web funciona con java en el backend. Es interesante buscar archivos como struts.xml para agrandar aun mas la superficie de ataque.
Struts es un framework web (MVC) orientado a tecnolog铆as java. En este archivo define algunas configuraciones del sitio. Entre ellas hay una en particular que puede ser de gran utilidad para un atacante. El elemento <action>.
Es un archivo de configuraci贸n XML para especificar la relaci贸n entre una URL, una clase Java y una p谩gina de vista (como index.jsp).
En este caso, solo debemos configurar el parametro alg con el valor none. Luego de esto solo quitamos la parte de la firma, pero conservando el punto final es decir
Original JWT: header.payload.sign
Malicious JWT: header.payload.
El algorirtmo HS256 utiliza la clave secreta para firmar y verificar cada mensaje. El algoritmo RS256 usa la clave privada para firmar el mensaje y usa la clave publica para la verificaci贸n.
Este es mi primer CTF de google, me anime a resolver los del 2020 asi que pronto hare el respectivo write-up de los demas. Este reto en particular me gusto mucho porque no solo encontre una vulnerabilidad en la aplicaci贸n objetivo, sino tambien en una biblioteca que usa llamada DOMpurify.
Esto no parece seguro. No pondr铆a ni el m谩s m铆nimo secreto aqu铆. Mi fuente me dice que es posible que terceros ya lo hayan implantado con sus peque帽as golosinas. 驴Puedes probar que tengo raz贸n?
Enlace al reto: https://pasteurize.web.ctfcompetition.com/