Golang
CONNECT-Methode
In der Programmiersprache Go ist es eine gängige Praxis beim Umgang mit HTTP-Anfragen, insbesondere unter Verwendung der net/http
-Bibliothek, die automatische Umwandlung des Anfragepfads in ein standardisiertes Format. Dieser Prozess umfasst:
Pfade, die mit einem Schrägstrich (
/
) enden, wie/flag/
, werden auf ihre nicht-schließende Entsprechung,/flag
, umgeleitet.Pfade, die Verzeichnis-Traversierungssequenzen wie
/../flag
enthalten, werden vereinfacht und auf/flag
umgeleitet.Pfade mit einem abschließenden Punkt wie in
/flag/.
werden ebenfalls auf den sauberen Pfad/flag
umgeleitet.
Eine Ausnahme wird jedoch bei der Verwendung der CONNECT
-Methode beobachtet. Im Gegensatz zu anderen HTTP-Methoden löst CONNECT
nicht den Pfadnormalisierungsprozess aus. Dieses Verhalten eröffnet eine potenzielle Möglichkeit, auf geschützte Ressourcen zuzugreifen. Durch die Verwendung der CONNECT
-Methode zusammen mit der Option --path-as-is
in curl
kann man die standardmäßige Pfadnormalisierung umgehen und möglicherweise eingeschränkte Bereiche erreichen.
Der folgende Befehl demonstriert, wie man dieses Verhalten ausnutzen kann:
Last updated