Golang
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:
Last updated