Golang

Support HackTricks

CONNECT metoda

U programskom jeziku Go, uobičajena praksa prilikom obrade HTTP zahteva, posebno korišćenjem net/http biblioteke, je automatska konverzija putanje zahteva u standardizovani format. Ovaj proces uključuje:

  • Putanje koje se završavaju sa kosom crtom (/) kao što je /flag/ preusmeravaju se na svoju verziju bez kose crte, /flag.

  • Putanje koje sadrže sekvence prolaska kroz direktorijume kao što je /../flag se pojednostavljuju i preusmeravaju na /flag.

  • Putanje sa završnom tačkom kao u /flag/. se takođe preusmeravaju na čistu putanju /flag.

Međutim, izuzetak se primećuje kod korišćenja CONNECT metode. Za razliku od drugih HTTP metoda, CONNECT ne pokreće proces normalizacije putanje. Ovo ponašanje otvara potencijalnu mogućnost za pristup zaštićenim resursima. Korišćenjem CONNECT metode zajedno sa --path-as-is opcijom u curl, može se zaobići standardna normalizacija putanje i potencijalno doći do ograničenih oblasti.

Sledeća komanda demonstrira kako iskoristiti ovo ponašanje:

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

Podržite HackTricks

Last updated