hacktricks/network-services-pentesting/pentesting-web/golang.md
carlospolop 63bd9641c0 f
2023-06-05 20:33:24 +02:00

937 B

Método CONNECT

En golang, la biblioteca net/http generalmente transforma la ruta a una canónica antes de acceder a ella:

  • /flag/ -- Se responde con una redirección a /flag
  • /../flag --- Se responde con una redirección a /flag
  • /flag/. -- Se responde con una redirección a /flag

Sin embargo, cuando se utiliza el método CONNECT esto no sucede. Por lo tanto, si necesita acceder a algún recurso protegido, puede abusar de este truco:

curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag

El código en el enlace proporcionado muestra la implementación de la función readRequest en el paquete net/http de Golang. Esta función se encarga de leer y analizar una solicitud HTTP entrante. Si se encuentra un error al leer la solicitud, se devuelve un error y se cierra la conexión. De lo contrario, se devuelve un puntero a una estructura http.Request que contiene información sobre la solicitud.