mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
1.7 KiB
1.7 KiB
{{#include ../../banners/hacktricks-training.md}}
CONNECTメソッド
Goプログラミング言語では、特にnet/http
ライブラリを使用してHTTPリクエストを処理する際に、リクエストパスを標準化された形式に自動的に変換することが一般的な慣行です。このプロセスには以下が含まれます:
- スラッシュ(
/
)で終わるパス(例:/flag/
)は、スラッシュのない対応するパス/flag
にリダイレクトされます。 /../flag
のようなディレクトリトラバーサルシーケンスを含むパスは簡略化され、/flag
にリダイレクトされます。/flag/.
のように末尾にピリオドがあるパスも、クリーンなパス/flag
にリダイレクトされます。
しかし、CONNECT
メソッドの使用に関しては例外が見られます。他のHTTPメソッドとは異なり、CONNECT
はパスの正規化プロセスをトリガーしません。この動作は、保護されたリソースにアクセスするための潜在的な手段を開きます。curl
でCONNECT
メソッドを--path-as-is
オプションと共に使用することで、標準のパス正規化をバイパスし、制限された領域に到達する可能性があります。
以下のコマンドは、この動作を悪用する方法を示しています:
curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
{{#include ../../banners/hacktricks-training.md}}