ディレクトリトラバーサル攻撃 とは†
- Webページのフォームに相対パスの上位ディレクトリを意味する文字列を含めた不正な入力データを与えることで、サーバ上のファイルに不正なアクセスをする攻撃。
- パス付のファイル名の入力を想定していないプログラムの不備を突き、パス付のファイル名を指定させることで、本来はアクセスされる想定のないファイルにアクセスする攻撃。
- Webページへの入力データをファイル名として使用してサーバ上のファイルをアクセスしている場合に、ディレクトリトラバーサルの脆弱性があると悪用される。
ディレクトリトラバーサル攻撃の呼称†
- パストラバーサル攻撃
- Path Traversal
- 入力値をファイル名として使用してサーバ上のファイルにアクセスする実装をしない。
- 入力値をファイル名として使用してサーバ上のファイルにアクセスする実装をする場合
- 入力値からディレクトリ名等のパスの部分を除去する(ファイル名のみの状態にする)
- 入力可能な文字を制限する
- 制限外の文字列が入力された場合はエラーとする
- 相対パスの上位ディレクトリを意味する文字列「/」「../」「..\」「\」
- URLエンコードや二重エンコード「"%25"~」されている上記の文字列
ディレクトリ参照によりディレクトリ構造の情報が漏れることの防止†
- デフォルトページ(index.htmlなど)を漏れなく配置する。
実装例†
関連サイト†
関連用語†