ディレクトリトラバーサル【情報処理安全確保支援士講座】

2026年1月14日

情報処理安全確保支援士 ディレクトリトラバーサル

今回は、情報処理安全確保支援士の試験で問われるディレクトリトラバーサルについて解説します。

アカリ
アカリ
ファイル名をいじって非公開のフォルダにアクセスする攻撃もあるの?
トモル
トモル
ディレクトリトラバーサルっていう攻撃があるよ~

この記事のまとめ

  1. ディレクトリトラバーサルの概要
  2. ディレクトリトラバーサルの例
  3. ディレクトリトラバーサルの対策

ディレクトリトラバーサル

情報処理安全確保支援士 ディレクトリトラバーサル

ディレクトリトラバーサル(パストラバーサル)は、ユーザの入力データをはじめ、外部からファイル名として利用される文字列を受け取り、Webサーバ内のファイルにアクセスする仕組みのWebアプリの脆弱性を突いた攻撃です。

キュー
キュー
ちなみにトラバーサルは横断って意味やで

ファイル名の先頭に「../」など、上位のディレクトリを意味する文字列を用いて公開を意図していないファイルにアクセスします。

ディレクトリトラバーサルの攻撃例

ディレクトリトラバーサルの具体的な攻撃例を見てみましょう。カレントディレクトリが”/download?file=ユーザー指定”を前提として、file=にディレクトリを遡る入力を行います。

別のディレクトリにパスワードを格納している”/etc/password”が存在しる場合、下記を入力するとパスワード一覧を取得されてしまいます。

../../etc/password

📝【出題履歴】令和4年度春期 午後Ⅰ問2 ディレクトリトラバーサルに関する出題

【問題文】

認証なしアクセスの処理に脆弱性があり,除外リストに指定されていないディレクトリ配下のファイルにも認証なしでアクセスできてしまう。例えば,http://192.168.0.1/images/..%2fstatus.cgiのURLにアクセスすると,http://192.168.0.1/images/fstatus.cgiに認証なしでアクセスできてしまう。これは,URLに”..%2f”を使用した c と呼ばれる攻撃手法である。

【設問】

設問2
(1) 図2中の c に入れる適切な字句を,15字以内で答えよ。

出題:令和4年度春期 午後Ⅰ問2

ディレクトリトラバーサルの対策

外部から受け取った文字列でそのままWebサーバへのアクセスはディレクトリトラバーサルにおける脆弱性につながり危険です。また、上位ディレクトリを意味する文字列の入力も受け付けないように制御すべきです。

したがって、下記のような対策が考えられます。

ディレクトリトラバーサルの対策
  • パス名からファイル名を取り出す”basename()”などのコマンドを利用し、文字列からディレクトリ名を取り除く
  • Webサーバ内のアクセス権を適切に設定する
  • ファイル名に「../」や「/」などの文字列がないかをチェックする
Attention!!
文字列のチェックでは「%2F」「%5C」など、エンコードされた文字列も解釈されないかどうかの確認・対策が必要です。
スポンサーリンク

ディレクトリトラバーサル・例題

実際に例題を解いて問題に慣れていきましょう。

ディレクトリトラバーサル攻撃はどれか。(H.25秋/問16)

ア:攻撃者が,OSの操作コマンドを利用するアプリケーションに対して,OSのディレクトリ作成コマンドを渡して実行する。
イ:攻撃者が,SQL文のリテラル部分の生成処理に問題があるアプリケーションに対して,任意のSQL文を渡して実行する。
ウ:攻撃者が,シングルサインオンを提供するディレクトリサービスに対して,不正に入手した認証情報を用いてログインし,複数のアプリケーションを不正使用する。
エ:攻撃者が,ファイル名の入力を伴うアプリケーションに対して,上位のディレクトリを意味する文字列を使って,非公開のファイルにアクセスする。

(ログイン後回答すると、ここに前回の正誤情報が表示されます)

問の正解を表示

問の解説を表示

ディレクトリトラバーサルは、../ などの 上位ディレクトリを示すパス表記を不正に入力して、本来アクセスできないはずのファイル(設定ファイルや機密情報など)にアクセスする攻撃です。

例:
https://example.com/view?file=../../../../etc/passwd

ア:攻撃者が,OSの操作コマンドを利用するアプリケーションに対して,OSのディレクトリ作成コマンドを渡して実行する。
→OSコマンドインジェクションの説明です。したがって誤りです。

イ:攻撃者が,SQL文のリテラル部分の生成処理に問題があるアプリケーションに対して,任意のSQL文を渡して実行する。
SQLインジェクションの説明です。したがって誤りです。

ウ:攻撃者が,シングルサインオンを提供するディレクトリサービスに対して,不正に入手した認証情報を用いてログインし,複数のアプリケーションを不正使用する。
→なりすましの攻撃事例です。したがって誤りです。

エ:攻撃者が,ファイル名の入力を伴うアプリケーションに対して,上位のディレクトリを意味する文字列を使って,非公開のファイルにアクセスする。
→ディレクトリトラバーサルの説明です。したがって正解です。

これより、「エ」が正解です。

ディレクトリトラバーサル・まとめ

この記事のまとめ

  1. ディレクトリトラバーサルの概要
  2. ディレクトリトラバーサルの例
  3. ディレクトリトラバーサルの対策

ディレクトリトラバーサルは過去にも問われた攻撃手法です。攻撃名も含め、具体的な攻撃内容や対策方法は押さえておきましょう。

次回はサーバサイドリクエストフォージェリ(SSRF)について学習します。


本気で支援士を狙うなら・・・
支援士ゼミがおすすめです!
  • ベテラン講師による手厚いサポート
  • モチベーションを保てるセキュリティコラムが満載!
  • マンツーマン形式で個別相談もできる!

スポンサーリンク