Golang

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricks をサポートする他の方法:

CONNECTメソッド

Goプログラミング言語では、特に net/http ライブラリを使用してHTTPリクエストを処理する際に、リクエストパスを標準化された形式に自動変換するのが一般的な慣行です。このプロセスには次のようなものが含まれます:

  • /flag/ のようにスラッシュ (/) で終わるパスは、そのスラッシュのない対応パス /flag にリダイレクトされます。

  • /../flag のようなディレクトリトラバーサルシーケンスを含むパスは簡略化され、/flag にリダイレクトされます。

  • /flag/. のように末尾にピリオドがあるパスも、クリーンなパス /flag にリダイレクトされます。

ただし、CONNECT メソッドの使用には例外があります。他のHTTPメソッドとは異なり、CONNECT はパスの正規化プロセスをトリガーしません。この動作により、保護されたリソースにアクセスする可能性が開かれます。curl--path-as-is オプションと一緒に CONNECT メソッドを使用することで、標準のパス正規化をバイパスし、制限されたエリアに到達する可能性があります。

次のコマンドは、この動作を悪用する方法を示しています:

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

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

Last updated