人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlでのコード・インジェクションの攻撃例を教えてください。

http://jvndb.jvn.jp/ja/cwe/CWE-94.htmlにphpでの攻撃例がありますが
php同様なperlでの攻撃例(脆弱なコードの例と攻撃例)
を教えてください

●質問者: aukjs
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● alfa-gadget
●0ポイント

こちらが参考になると思います。
OSコマンドインジェクション攻撃 ‐ 通信用語の基礎知識

サンプルソースコード(Perl)
CGIプログラムで、メールアドレスの登録者に自動で返信する処理を想定する。

#!/usr/bin/perl
use strict;
use CGI;
my $cgi = new CGI;
my $mail = $cgi->param('mail')
my $fp;
open(fp, "|/usr/lib/sendmail $mail");
print fp "Subject: Registration of mail address\n";
print fp "From: regist@example.com\n\n";
print fp "登録ありがとうございます。\n";
close($fp);

この例では、Webのフォームなどから呼ばれ、利用者が入力したメールアドレスがCGIパラメーターmailの値となることとする。
もしメールアドレスに「nurupo@example.jp」と入力された場合、上のプログラムでは次のような文字列を作り、シェルに渡され実行される。

 /usr/lib/sendmail nurupo@example.jp

恐らくこれが、本来想定された動作だろう。しかしもし、悪意ある利用者が「nurupo@example.jp; rm -rf /」と入力した場合、どうなるであろうか。この場合、次のコマンドが実行されてしまう。

 /usr/lib/sendmail nurupo@example.jp; rm -rf /

質問者から

OSコマンドインジェクションの例が回答されていますが、
OSコマンドインジェクションではなく「コードインジェクション」=スクリプトを挿入する攻撃についてです。


2 ● LLマン
●500ポイント ベストアンサー

OSコマンドインジェクションではなく
「コードインジェクション」=スクリプトを挿入する攻撃について


それから、上記のようなご質問者様の区別には違和感があります。

この脆弱性のカテゴリにおける最も典型的な例として、SQL インジェクションおよび書式文字列の問題があります。


ご質問者様が挙げたページにも、上記のようにあります。つまり、SQLインジェクションは(コード)インジェクションに含まれるということです。

意図するOSコマンドの構文やふるまいを改ざんすることが(略)


同様に、OSコマンドインジェクションもコードインジェクションに含まれます。そのページのPHPのサンプルコードも、結局systemを使って攻撃していますね。

インジェクションというとOSコマンドやSQLの記事が多いから、ご質問されたのだと思います。しかしなぜ多いかといえば、それらが攻撃者にとって攻撃目標になりやすいからです。

防御側は相手の攻撃に対応しないといけなくて、好きな防ぎ方をするわけにいかないので、コマンドの例を避けることにメリットがあまりないと思います。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ