Golang
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:
Last updated