ディレクトリトラバーサル
意味・解説
ファイルパスを操作して、本来公開されていないサーバー内のファイルへ不正にアクセスする攻撃。
Webサイトの入力フォームなどに「../」のようなパス階層を遡る文字列を入れ、管理者以外が見られないはずのシステムファイルや個人情報ファイルを閲覧・奪取する手法。パス(階層)を横断(トラバーサル)することから名付けられた。
くわしく
ディレクトリトラバーサルは、プログラムのファイル指定処理に不備がある場合に発生する脆弱性攻撃である。
1. 攻撃の手法:例えば「view.php?file=pic.jpg」というURLに対し、攻撃者は「file=../../etc/passwd」のように入力を書き換える。「../」は親ディレクトリ(上の階層)を指すため、公開フォルダを脱出してシステムの中枢部へ移動できてしまう。
2. 深刻なリスク:サーバー上のパスワードファイル、設定ファイル、顧客データなどが漏洩する恐れがある。また、書き込みが可能な場合は、設定を書き換えられてバックドアを作られる危険性もある。
3. 実務での対策:外部からの入力値をそのままファイル名として扱わないことが鉄則である。入力値に「/」や「..」が含まれていないかチェック(サニタイジング)するか、許可されたファイル名以外は受け付けない「ホワイトリスト方式」で設計する。現代のフレームワークでは標準で対策されていることが多いが、独自プログラムでは注意が必要なポイントである。
例文
ディレクトリトラバーサルを防ぐため、外部からの引数に階層を移動する文字列が含まれていないか検証する。
同義語: パス・トラバーサル
分類: Web脆弱性攻撃