tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Méthode CONNECT

Dans le langage de programmation Go, une pratique courante lors du traitement des requêtes HTTP, en utilisant spécifiquement la bibliothèque net/http, est la conversion automatique du chemin de la requête en un format standardisé. Ce processus implique :

  • Les chemins se terminant par un slash (/) comme /flag/ sont redirigés vers leur équivalent sans slash, /flag.
  • Les chemins contenant des séquences de traversée de répertoires telles que /../flag sont simplifiés et redirigés vers /flag.
  • Les chemins avec un point final comme dans /flag/. sont également redirigés vers le chemin propre /flag.

Cependant, une exception est observée avec l'utilisation de la méthode CONNECT. Contrairement aux autres méthodes HTTP, CONNECT ne déclenche pas le processus de normalisation du chemin. Ce comportement ouvre une voie potentielle pour accéder à des ressources protégées. En utilisant la méthode CONNECT avec l'option --path-as-is dans curl, on peut contourner la normalisation standard du chemin et potentiellement atteindre des zones restreintes.

La commande suivante démontre comment exploiter ce comportement :

bash
curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag

https://github.com/golang/go/blob/9bb97ea047890e900dae04202a231685492c4b18/src/net/http/server.go#L2354-L2364

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks