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

14 lines
937 B
Markdown
Raw Normal View History

2023-06-05 18:33:24 +00:00
## 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:
```text
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.