hacktricks/network-services-pentesting/pentesting-web/golang.md

3.8 KiB

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Méthode CONNECT

Dans le langage de programmation Go, une pratique courante lors de la manipulation 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 contrepartie sans slash, /flag.
  • Les chemins contenant des séquences de traversée de répertoire comme /../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 accéder à des zones restreintes.

La commande suivante montre comment exploiter ce comportement :

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

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge HackTricks AWS)!

Autres façons de soutenir HackTricks: