1.5 KiB
{{#include ../../banners/hacktricks-training.md}}
Metoda CONNECT
W języku programowania Go powszechną praktyką przy obsłudze żądań HTTP, szczególnie przy użyciu biblioteki net/http, jest automatyczna konwersja ścieżki żądania do ustandaryzowanego formatu. Proces ten obejmuje:
- Ścieżki kończące się ukośnikiem (
/), takie jak/flag/, są przekierowywane do ich odpowiednika bez ukośnika,/flag. - Ścieżki zawierające sekwencje przechodzenia do katalogu, takie jak
/../flag, są upraszczane i przekierowywane do/flag. - Ścieżki z końcową kropką, jak w
/flag/., są również przekierowywane do czystej ścieżki/flag.
Jednakże, wyjątek obserwuje się przy użyciu metody CONNECT. W przeciwieństwie do innych metod HTTP, CONNECT nie uruchamia procesu normalizacji ścieżki. To zachowanie otwiera potencjalną drogę do uzyskania dostępu do chronionych zasobów. Używając metody CONNECT wraz z opcją --path-as-is w curl, można obejść standardową normalizację ścieżki i potencjalnie dotrzeć do zastrzeżonych obszarów.
Poniższe polecenie demonstruje, jak wykorzystać to zachowanie:
curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
{{#include ../../banners/hacktricks-training.md}}