hacktricks/network-services-pentesting/pentesting-web/golang.md
2024-02-10 15:36:32 +00:00

3.9 KiB

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

CONNECT-Methode

In der Programmiersprache Go ist es eine gängige Praxis, bei der Verarbeitung von HTTP-Anfragen, insbesondere unter Verwendung der net/http-Bibliothek, die automatische Konvertierung des Anfragepfads in ein standardisiertes Format durchzuführen. Dieser Prozess umfasst:

  • Pfade, die mit einem Schrägstrich (/) enden, wie z.B. /flag/, werden auf ihren nicht-schrägstrichhaltigen Gegenpart /flag umgeleitet.
  • Pfade, die Verzeichnistraversierungssequenzen wie /../flag enthalten, werden vereinfacht und auf /flag umgeleitet.
  • Pfade mit einem abschließenden Punkt wie /flag/. werden ebenfalls auf den sauberen Pfad /flag umgeleitet.

Bei der Verwendung der CONNECT-Methode wird jedoch eine Ausnahme beobachtet. Im Gegensatz zu anderen HTTP-Methoden löst CONNECT den Pfadnormalisierungsprozess nicht aus. Dieses Verhalten eröffnet eine potenzielle Möglichkeit zum Zugriff auf geschützte Ressourcen. Durch die Verwendung der CONNECT-Methode zusammen mit der Option --path-as-is in curl kann man die Standard-Pfadnormalisierung umgehen und möglicherweise auf eingeschränkte Bereiche zugreifen.

Der folgende Befehl zeigt, wie man dieses Verhalten ausnutzen kann:

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

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: