Golang
CONNECTメソッド
Goプログラミング言語では、特に net/http
ライブラリを使用してHTTPリクエストを処理する際に、リクエストパスを標準化された形式に自動変換するのが一般的な慣行です。このプロセスには次のようなものが含まれます:
/flag/
のようにスラッシュ (/
) で終わるパスは、そのスラッシュのない対応パス/flag
にリダイレクトされます。/../flag
のようなディレクトリトラバーサルシーケンスを含むパスは簡略化され、/flag
にリダイレクトされます。/flag/.
のように末尾にピリオドがあるパスも、クリーンなパス/flag
にリダイレクトされます。
ただし、CONNECT
メソッドの使用には例外があります。他のHTTPメソッドとは異なり、CONNECT
はパスの正規化プロセスをトリガーしません。この動作により、保護されたリソースにアクセスする可能性が開かれます。curl
の --path-as-is
オプションと一緒に CONNECT
メソッドを使用することで、標準のパス正規化をバイパスし、制限されたエリアに到達する可能性があります。
次のコマンドは、この動作を悪用する方法を示しています:
Last updated