ノリブログ?

Webアプリケーションからシェルスクリプトを動作させるときのサニタイズ

カテゴリー:Linux

作成しているWebアプリケーションに、GETパラメータから値を受け取ってその値を元にシェルスクリプトを動作させるという処理がありました。

このような処理があるときは値を受け取ったときに適切にサニタイズしなければサーバに致命的な脆弱性を生みます。

では、どのよう値が危険なのかを説明していきたいと思います。

今回、以下のようなシェルスクリプトを実行するとします。$1はWebアプリから受け取った値です。

cp $1

セミコロン

ここでもし$1の中身が「;rm -rf *」であればシェルスクリプトが実行する内容は

cp;rm -rf *

ディレクトリ内のファイルが全て削除されてしまいます。
これを防ぐため「;」はバックスラッシュでエスケープしておくべきです。

スラッシュ

次に$1の中身が「../../../../etc/filename」のようにシステムにかかわるパスであれば、システムファイルが書き換えられてしまう危険性があります。
そこで上の階層のディレクトリをディレクトリを書き換えられないようにするため「/」もエスケープする文字列に指定しておくべきでしょう。

 

 

 

関連記事

Track Back URL

name
E-mail(省略可)
URL(省略可)
コメント