« Linux に Ruby 、 Rails 、 Mysql をインストールしてアプリを動かす | メイン | PHP バッファオーバーフロー »

コマンド・インジェクション恐るべし

今、PHPであるアプリを作っていて、セキュリティを固めている途中。
今回は、コマンド・インジェクションがテーマ。XSSとかSQLインジェクションもあとでやります。

コマンド・インジェクションは一応知っていたけど、復習&実践&メモ。


こちらを参考にした

コマンド・インジェクションは簡単に言うと、
「外部から任意の OS コマンドを実行すること」
である。

上記の参考ページに書いてあるスクリプトを test.cgi に書き、
CGIの実行できるフォルダへアップする。
そして、http://~~/test.cgi?filename=|ls%20-la%20/
な感じでアクセスすると・・・。

↑こうなる!

Linux のコマンドで、ls -la と打っているとの同じだ。
あ~、恐ろしや。。


ところで、開発中のPHPのアプリに上記の脆弱性があるのかと言うと、
「ない」
である。

他にどんな原因が考えられるかと言うと、コチラを参考に調べた結果。

(1) 直接指定(シェルスクリプト)
(2) open()関数の使用(Perl) ←さっきやったやつ。
(3) 引数をシェルに渡す関数の使用(ほとんどの言語)

それで、今回のアプリで脆弱性がないか調べる。

(1) 直接指定(シェルスクリプト)
シェルスクリプトで書いていないので、ありえない。

(2) open()関数の使用(Perl) ←上記でやったやつ。
Perlで書いていないので、ありえない。

(3) 引数をシェルに渡す関数の使用(ほとんどの言語)
PHPにもシェルコマンドを実行できるメソッド(system)はあるが、利用していないので、ありえない。
けど、とりあえずやってみた。


うーむ。しっかり実行される。恐ろしや。


上記のことから、コマンドインジェクションはない!
と言えると思う。

他に、Webアプリでコマンド・インジェクションの可能性があったら教えてください(^^;



トラックバック

このエントリーのトラックバックURL:
http://synth.jp/pg/mt-tb.cgi/54

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

カレンダー


2007年06月
Su Mo Tu We Th Fr Sa
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Map

About

2006年11月28日 12:07に投稿されたエントリーのページです。

ひとつ前の投稿は「Linux に Ruby 、 Rails 、 Mysql をインストールしてアプリを動かす」です。

次の投稿は「PHP バッファオーバーフロー」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。