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

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


この記事のまとめ
- ディレクトリトラバーサルの概要
- ディレクトリトラバーサルの例
- ディレクトリトラバーサルの対策
ディレクトリトラバーサル

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

ファイル名の先頭に「../」など、上位のディレクトリを意味する文字列を用いて公開を意図していないファイルにアクセスします。
ディレクトリトラバーサルの攻撃例
ディレクトリトラバーサルの具体的な攻撃例を見てみましょう。カレントディレクトリが”/download?file=ユーザー指定”を前提として、file=にディレクトリを遡る入力を行います。
別のディレクトリにパスワードを格納している”/etc/password”が存在しる場合、下記を入力するとパスワード一覧を取得されてしまいます。
../../etc/password
ディレクトリトラバーサルの対策
外部から受け取った文字列でそのままWebサーバへのアクセスはディレクトリトラバーサルにおける脆弱性につながり危険です。また、上位ディレクトリを意味する文字列の入力も受け付けないように制御すべきです。
したがって、下記のような対策が考えられます。
- パス名からファイル名を取り出す”basename()”などのコマンドを利用し、文字列からディレクトリ名を取り除く
- Webサーバ内のアクセス権を適切に設定する
- ファイル名に「../」や「/」などの文字列がないかをチェックする
ディレクトリトラバーサル・例題
実際に例題を解いて問題に慣れていきましょう。
問
ア:攻撃者が,OSの操作コマンドを利用するアプリケーションに対して,OSのディレクトリ作成コマンドを渡して実行する。
イ:攻撃者が,SQL文のリテラル部分の生成処理に問題があるアプリケーションに対して,任意のSQL文を渡して実行する。
ウ:攻撃者が,シングルサインオンを提供するディレクトリサービスに対して,不正に入手した認証情報を用いてログインし,複数のアプリケーションを不正使用する。
エ:攻撃者が,ファイル名の入力を伴うアプリケーションに対して,上位のディレクトリを意味する文字列を使って,非公開のファイルにアクセスする。
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
ディレクトリトラバーサル・まとめ
この記事のまとめ
- ディレクトリトラバーサルの概要
- ディレクトリトラバーサルの例
- ディレクトリトラバーサルの対策
ディレクトリトラバーサルは過去にも問われた攻撃手法です。攻撃名も含め、具体的な攻撃内容や対策方法は押さえておきましょう。
次回はサーバサイドリクエストフォージェリ(SSRF)について学習します。








ディスカッション
コメント一覧
まだ、コメントがありません