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

3.6 KiB

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Método CONNECT

Na linguagem de programação Go, uma prática comum ao lidar com solicitações HTTP, especificamente usando a biblioteca net/http, é a conversão automática do caminho da solicitação em um formato padronizado. Esse processo envolve:

  • Caminhos terminando com uma barra (/) como /flag/ são redirecionados para sua contraparte sem barra, /flag.
  • Caminhos contendo sequências de travessia de diretório como /../flag são simplificados e redirecionados para /flag.
  • Caminhos com um ponto final como em /flag/. também são redirecionados para o caminho limpo /flag.

No entanto, uma exceção é observada com o uso do método CONNECT. Ao contrário de outros métodos HTTP, o CONNECT não aciona o processo de normalização do caminho. Esse comportamento abre uma potencial via para acessar recursos protegidos. Ao empregar o método CONNECT juntamente com a opção --path-as-is no curl, é possível contornar a normalização padrão do caminho e potencialmente alcançar áreas restritas.

O comando a seguir demonstra como explorar esse 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

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks: