トップページ サービスの詳細 セキュリティ情報 購読の申し込み
HotFix Report
/セキュリティ用語/

■ディレクトリ・トラバース(directory traverse)
 相対パス記法などを使うことで、本来はアクセスが許可されていないWebページやファイルへのアクセスを許してしまう脆弱性。システム内のディレクトリ間を横断(トラバース)可能とすることからディレクトリ・トラバースと呼ばれる。ディレクトリ・トラバーサル(directory traversal)ともいう。

 例えば、以下のようなフォルダに対して、dataフォルダの下のみアクセス可能に設定していたとする。

/ ------- home ---- data (アクセス許可あり)
  |
  ------ passwd -- passdata (アクセス許可なし)

 このとき、dataフォルダは、/home/data/と表され、Perlでは以下のような文法で$fileに入力されたファイルを開くことが可能だ。

$filepath = "/home/data/".$file;
open(DATA, $filepath, O_RDONLY);

 ここで、$fileに「../../passwd/passdata」が入力された場合、$filepathには「/home/data/../../passwd/passdata」が入力されることになる。このパスは、「/passwd/passdata」と等価であることから、openでは「/passwd/passdata」が開かれることになり、本来はアクセスを許可していないファイルが開かれてしまう。

 この例は、もっとも単純なディレクトリ・トラバースの脆弱性だが、ディレクトリ区切り文字として使用される「\」を「%5c」という文字列にエンコードして記述することで、URLのパスを変更するといった手法などもある。これ以外にも、ディレクトリ・トラバースの脆弱性を悪用する手法は多く存在する。プログラムの記述時にパスやURLの検証を十分に行わないと、思わぬ攻撃を受けてしまう結果となるので注意したい。

 
 
Copyright (C) Digital Advantage Corp.
無断で複製・再配信などを行うことはできません。

HotFix Reportでは、細心の注意を払って情報提供を行っておりますが、本サービスにおける情報の正確性、最新性、適切性などについて、明示的又は黙示的な保証を行いません。また本サービスの停止や欠陥、それらに起因して発生する損失や損害について、一切責任を負いません。