hacktricks/network-services-pentesting/pentesting-web/golang.md

3.5 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

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

{% hint style="success" %} Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks
{% endhint %}