明けましておめでとうございます。フジボウルの寺山です。
最近、フィットボクシング2を購入し、毎日30分ほどやっておりますが、まだまだ体重に変化はありません...。継続していきます。
本日で2度目となりますが、今後ともよろしくお願い致します。
さて、本日から私も軽く得られた知識を紹介できればと思います。
今回は昔現場で指摘があった脆弱性、
「ディレクトリトラバーサル」について、です。
ディレクトリトラバーサルとは、本来アクセスできないファイルやディレクトリに、相対パスの指定などを利用してアクセスする攻撃手法のことです。
どのような形でこの攻撃をするのかというと、例えば①ファイルを登録し、保存する画面、②保存された画像をダウンロードできる画面、を作るとします。①の時にどこかのディレクトリにファイルが保存されるイメージです。
①のファイルを登録する画面で、ファイルのパスを「../../../password.txt」のような形に変更し、登録します。
そして、そのまま登録されると、なんと②のファイルをダウンロードできる画面で「../../../password.txt」の情報を取得できるようになります。
何故、このようなことになるかというと、相対パスをプログラム側で実際の位置を参照できるよう正規化するからです。①で保存されたファイルを取得する際に、「../../../password.txt」から取得してきてしまいます。
そのため、ディレクトリパスやファイル名が特定できた場合、システム内部に保存されている本来取得できないファイルにアクセスされる恐れがあります。
対策方法は色々ありますが、
・「../」を入力することによる任意のディレクトリに移動できないよう入力チェックを行う。
・指定されるファイル名をホワイトリスト型式などで管理する
などがあると思います。
登録画面を作る際には、こういった攻撃を受けないように気をつけて制作していきたいですね。