1.6 KiB
{{#include ../../banners/hacktricks-training.md}}
CONNECT-Methode
In der Programmiersprache Go ist es eine gängige Praxis, beim Umgang mit HTTP-Anfragen, insbesondere unter Verwendung der net/http-Bibliothek, den Anfragepfad automatisch in ein standardisiertes Format zu konvertieren. Dieser Prozess umfasst:
- Pfade, die mit einem Schrägstrich (
/) enden, wie/flag/, werden auf ihre nicht mit Schrägstrich endenden Gegenstücke umgeleitet,/flag. - Pfade, die Verzeichnis-Traversierungssequenzen wie
/../flagenthalten, werden vereinfacht und auf/flagumgeleitet. - Pfade mit einem nachgestellten Punkt wie in
/flag/.werden ebenfalls auf den sauberen Pfad/flagumgeleitet.
Eine Ausnahme wird jedoch bei der Verwendung der CONNECT-Methode beobachtet. Im Gegensatz zu anderen HTTP-Methoden löst CONNECT den Prozess der Pfadnormalisierung nicht 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 potenziell eingeschränkte Bereiche erreichen.
Der folgende Befehl demonstriert, wie man dieses Verhalten ausnutzen kann:
curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
{{#include ../../banners/hacktricks-training.md}}