hacktricks/network-services-pentesting/pentesting-web/golang.md
2024-02-10 13:03:23 +00:00

3.7 KiB

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Metodo CONNECT

Nel linguaggio di programmazione Go, una pratica comune quando si gestiscono richieste HTTP, specificamente utilizzando la libreria net/http, è la conversione automatica del percorso della richiesta in un formato standardizzato. Questo processo comporta:

  • I percorsi che terminano con una barra (/) come /flag/ vengono reindirizzati alla loro controparte senza barra, /flag.
  • I percorsi che contengono sequenze di attraversamento delle directory come /../flag vengono semplificati e reindirizzati a /flag.
  • I percorsi con un punto finale come /flag/. vengono anche reindirizzati al percorso pulito /flag.

Tuttavia, si osserva un'eccezione con l'uso del metodo CONNECT. A differenza degli altri metodi HTTP, CONNECT non attiva il processo di normalizzazione del percorso. Questo comportamento apre una potenziale via per accedere a risorse protette. Utilizzando il metodo CONNECT insieme all'opzione --path-as-is in curl, è possibile aggirare la normalizzazione standard del percorso e potenzialmente raggiungere aree restritte.

Il seguente comando mostra come sfruttare questo comportamento:

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

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: