[ホーム] > [サイバー攻撃大辞典 トップ] > [ディレクトリ トラバーサル(directory traversal) | パストラバーサル(path traversal) ]


作成日:2020/09/18

ディレクトリ トラバーサル(directory traversal) | パストラバーサル(path traversal)

ディレクトリ トラバーサルの概要図


クライアントからファイル名を指定する場合、相対パスを指定することにより任意のファイル(想定外)をアクセスする。
例えばWebシステムでユーザが入力したファイル名にプログラムがパスを追加してファイルをダウンロードさせるとする。
ここで悪意のユーザはファイル名ではなく相対パスを入力することにより、想定外のプログラムを入手する

traversal(トラバーサル)とは"横断"という意味。別名はディレクトリクライミングとも呼ぶ。


攻撃例


以下のようにユーザ入力ファイル名(param1)より内容を表示するプログラムがあるとする。
------------------------------------------
str="/home/user01/data/app01/var/".$param1
cat $str
------------------------------------------

この場合、悪意のユーザがパラメータに以下を指定した場合、結果として /etc/passwd と同じディレクトリとなりpasswdの中身を表示してしまう。

"/../../../../../../../../../../../etc/passwd"




対策


・クライアントからのパラメータを元にサーバ側のファイルを参照/処理する方式は避ける。
・Webサーバでファイルを開く場合はディレクトリは固定とする。ファイル名はディレクトリ区切り文字(/や\)や|(パイプ) や.(ドット)などが含まれていないことをチェックする。
・ファイルのアクセス権を適切に設定する。
・ファイル名に%など特殊文字を含む場合はエラー処理する。







[ホーム] > [サイバー攻撃大辞典 トップ] > [ディレクトリ トラバーサル(directory traversal) | パストラバーサル(path traversal) ]


本サイト内掲載されている情報は、誰もその正当性は保証しません。独自の調査により判明した事項を記載しており、内容に誤りがある可能性があります。
内容により発生したいかなる損害は誰も補償しません。自己責任で参考として閲覧してください。
本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) securitychecklist.net 2015 - 2020