ディレクトリトラバーサル
更新日:
用語解説
ディレクトリトラバーサルは、ファイル名やパスを受け取る処理へ親ディレクトリ表現、絶対パス、符号化した区切りなどを与え、公開を許した基準ディレクトリの外へアクセスする攻撃です。
■ 試験で押さえるポイント
任意ファイルの読取りだけでなく、アップロード・展開・削除処理では設定や実行ファイルの上書きにつながることがあり、Zip展開時のパスにも注意します。
利用者へ実パスを指定させず、文書IDをサーバ側の許可済みファイルへ対応付けます。必要なら正規化後の絶対パスが基準ディレクトリ内か確認します。
拡張子、文字種、候補名を許可リストで制限し、ファイル処理アカウントの権限を最小化し、機密ファイルをWeb公開領域から分離します。
単に特定の親ディレクトリ文字列を一度削除しても、二重符号化、異なる区切り、正規化後に現れるパスで迂回されるため不十分です。
■ 選択肢での判断ポイント
入力パスを操作して許可ディレクトリの外へ移動する攻撃です。正規化して基準内か確認する点と、実パスを入力させない設計を押さえます。
例: ダウンロードAPIは利用者からパスを受け取らず文書IDだけを受け、DBで所有権を確認して、サーバが管理する保存先から対象ファイルを返します。