tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks

Metodo CONNECT

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

  • I percorsi che terminano con una barra (/) come /flag/ vengono reindirizzati al loro equivalente senza barra, /flag.
  • I percorsi contenenti sequenze di traversamento delle directory come /../flag vengono semplificati e reindirizzati a /flag.
  • I percorsi con un punto finale come in /flag/. vengono anch'essi 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 bypassare la normalizzazione standard del percorso e potenzialmente raggiungere aree riservate.

Il seguente comando dimostra come sfruttare questo comportamento:

bash
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

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks