投稿日:2002年09月11日 作成鷹の巣

No.5178 最近 こんなエラーが、めっきり増えました。formmail.pl ご注意。



最近 こんなエラーが、めっきり増えました。formmail.pl ご注意。

No.5178 投稿時間:2002年09月11日(Wed) 16:22 投稿者名:y.k. URL:

そういえば、
最近 こんなエラーが、めっきり増えました。
SPAMの踏み台に使おうとしてるのかな。
formmail.pl なるものを使っている方は、ご注意。

acs-24-154-129-232.zoominternet.net - - [08/Sep/2002:10:18:52 +0900]
"GET/cgi-bin/formmail.pl?email=f2%40aol%2Ecom&subject=abc%2Ejp%2Fcgi
%2Dbin%2F
formmail%2Epl&recipient=horrormovies%40aol%2Ecom&msg=w00t HTTP/1.1Content-Type: application/x-www-form-urlencoded"


ウイルスですか。それとも故意ですか??

No.5184 投稿時間:2002年09月11日(Wed) 18:38 投稿者名:OAK URL:

> そういえば、
> 最近 こんなエラーが、めっきり増えました。
> SPAMの踏み台に使おうとしてるのかな。
> formmail.pl なるものを使っている方は、ご注意。
>
> acs-24-154-129-232.zoominternet.net - - [08/Sep/2002:10:18:52 +0900]
> "GET/cgi-bin/formmail.pl?email=f2%40aol%2Ecom&subject=abc%2Ejp%2Fcgi
> %2Dbin%2F
> formmail%2Epl&recipient=horrormovies%40aol%2Ecom&msg=w00t HTTP/1.1Content-Type: application/x-www-form-urlencoded"

この f2@aol.com は誰のメールでしょう。やっている本人かな?
いずれにしろ、 .pl でのCGI実行は出来ないでしょうから実害は無いと思われます。
まさか .pl でのCGI実行を許可したりする方はいないでしょう。


故意っぽいですね。

No.5186 投稿時間:2002年09月12日(Thu) 00:21 投稿者名:帯鯖 URL:

y.k. さん、OAK さん、こんにちは。
帯鯖@名古屋です。

我が家にも、スキャンらしきログがありましたので、公開しておきます。

[19/Aug/2002:16:51:48 +0900] "POST /cgi-bin/formmail.cgi HTTP/1.0" 404 289
[19/Aug/2002:16:51:50 +0900] "POST /cgibin/formmail.pl HTTP/1.0" 404 287
[19/Aug/2002:16:51:52 +0900] "POST /cgi-bin/formmail.pl HTTP/1.0" 404 288
[19/Aug/2002:16:51:52 +0900] "POST /cgibin/formmail.cgi HTTP/1.0" 404 288
[19/Aug/2002:16:51:53 +0900] "POST /cgi-local/formmail.pl HTTP/1.0" 404 290
[19/Aug/2002:16:51:55 +0900] "POST /cgi-local/formmail.cgi HTTP/1.0" 404 291

sendmail を実行させようとしているんでしょうね。
いずれにせよ、判り易いファイル名やディレクトリ構造にしない工夫が必要でしょう。

そのうち、フリーで流れているソースを狙ったアタックも起きるんじゃないかな?
いや、起きても不思議ではないですね。


.pl でのCGI実行を許可しない意味を教えてくださいませんか?

No.5188 投稿時間:2002年09月12日(Thu) 00:42 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

今晩は。 OAKさんは、この分野にかなり明るい方。

> まさか .pl でのCGI実行を許可したりする方はいないでしょう。

是非ともこちらの正確な意味、その背景を、お聞きしたいのですが。


Webサーバーから、*.pllがCGIとしてプログラム実行するかどうかです。

No.5189 投稿時間:2002年09月12日(Thu) 09:06 投稿者名:OAK URL:

> 今晩は。 OAKさんは、この分野にかなり明るい方。

ちょっとオーバーですね

> > まさか .pl でのCGI実行を許可したりする方はいないでしょう。
> 是非ともこちらの正確な意味、その背景を、お聞きしたいのですが。

HTTPDが POST /cgibin/formmail.pl を受けたときに、
/cgibin/formmail.pl をCGIとして、プログラム実行するかどうかです。

.htaccess などの定義で
AddType text/html pl cgi
AddHandler cgi-script pl cgi

になっていれば /cgibin/formmail.pl をプログラム実行しその結果をクライアントに出す
実行されるので、HTTPクライアントにエラーを返してもメールは出してしまう。

普通は /cgibin/formmail.pl はプログラム実行せず、ファイルの内容をクライアントに HTML として出す。
エラーにはならない。もちろんメールはださない。(.pl の読み取りを禁止していなければ)

formmail.pl がメール送信プログラムだとしてですが。
メール出したくらいでは実害はあまり無いでしょう。でもこれがファイル操作をするようなプログラムだと問題が出ます。

動いているCGIを .cgi が .pl になるようコピーして IEから見てみれば分かります。


訂正。*.pl をWebサーバーから実行されるとまずい場合は、何か策を打たないといけないです。

No.5192 投稿時間:2002年09月12日(Thu) 12:07 投稿者名:OAK URL:

> HTTPDが POST /cgibin/formmail.pl を受けたときに、
> /cgibin/formmail.pl をCGIとして、プログラム実行するかどうかです。

おやじさんが言っていた意味がわかりました。

cgi-bin を標準のまま使っていると、すべてのファイルがCGI可能なのですね。
私は cgi-bin 使わないので気が付きませんでした。
私は .htaccess で普通のHTML位置にCGIを置いているので、addhander で .cgi をCGIとして
動くようにしてあり、それ以外は動かないのです。

従って /cgi-bin を使っていて .pl を直接外部から動作されるとまずい場合は、何か策を打たないと
いけないのですね。


.cgiと.plって、明確な使い分けがあるのでしょうか?

No.5203 投稿時間:2002年09月13日(Fri) 00:14 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

> > HTTPDが POST /cgibin/formmail.pl を受けたときに、
> > /cgibin/formmail.pl をCGIとして、プログラム実行するかどうかです。
>
> おやじさんが言っていた意味がわかりました。
>
> cgi-bin を標準のまま使っていると、すべてのファイルがCGI可能なのですね。
> 私は cgi-bin 使わないので気が付きませんでした。
> 私は .htaccess で普通のHTML位置にCGIを置いているので、addhander で .cgi をCGIとして
> 動くようにしてあり、それ以外は動かないのです。
>
> 従って /cgi-bin を使っていて .pl を直接外部から動作されるとまずい場合は、何か策を打たないと
> いけないのですね。

ありがとうございます。おやじは、この分野ははじめたばかりで本質がわかっていません。
昔から、本質追求方の人間で、極端な言い方すれば本質がわかれば何でもできると思っており、
数学も公式を覚えた記憶がなく、公式の元しか興味が無かった男ですので、変な質問をしているのかなと
思ったりして。
.cgiと.plって、明確な使い分けがあるのでしょうか? おやじは、.cgiは基本的にCGIとして実行するもの、
.plはCGIからコールされるスクリプト等とぼんやり思っているのですが。
これからもよろしくお願いします。


危険なスクリプトは、Webサーバーのドキュメントルート下に設置しないということだと考えます。

No.5205 投稿時間:2002年09月13日(Fri) 01:08 投稿者名:鷹の巣 URL:http://sakaguch.com/

>  .cgiと.plって、明確な使い分けがあるのでしょうか? おやじは、.cgiは基本的にCGIとして実行するもの、
> .plはCGIからコールされるスクリプト等とぼんやり思っているのですが。


大雑把に言いますと、Windows的な表現で、拡張子がCGIになっているものは、Webサーバーから、実行されるもので、
言語で言えば、C言語とPerl言語等があります。Webサーバーとの入出力は、標準入出力ですが、Webサーバー用のヘッダをつけます。
一方、拡張子がPLになっているものは、Perl言語でだけであり、コマンドラインから実行するものです。入出力は、標準入出力です。

CGIの仕組みは、
http://village.infoweb.ne.jp/~fwnd7095/perl/perl1_2.htm
が一番簡単に読めます。

Webサーバーのドキュメントルート下に、拡張子がCGIだから安全で、拡張子がPLだから危険といったものでもありません。
そもそも危険なスクリプトは、拡張子がCGIでもPLでも、Webサーバーのドキュメントルート下に設置しないということだと考えます。

同様にSSIが危険で、CGIが安全ということもないです。SSIの方が手間がかからないということは、言えますが。


★CGIから、コマンドを実行する例。(アクセス管理の甘いディレクトリを/tmpとします。)
$host = 'example.com';
system("/tmp/nslookup -q=MX $host. > /tmp/mx_data.$$");
open(NSLOOKUP,"/tmp/mx_data.$$");
	@nslookup = <NSLOOKUP>;
close(NSLOOKUP);
unlink("/tmp/mx_data.$$");
print "-------------------------------------------------------------------------<br>\n";
print "nslookup -q=MX $host.の実行結果は、以下の通りです。<br><pre>\n";
print @nslookup;
print "</pre>-------------------------------------------------------------------------<br>\n";

注)
system("/tmp/nslookup -q=MX $host. > /tmp/mx_data.$$");
open(NSLOOKUP,"/tmp/mx_data.$$");
のところは、
open(NSLOOKUP,"| /tmp/nslookup -q=MX $host. > /tmp/mx_data.$$")|| die ("nslookupコマンドが使用出来ません。");
でも良いですね。メール送信で、sendmailを呼び出すところもこれによく似た形になっています。


ありがとうございます。少し勉強します。

No.5236 投稿時間:2002年09月14日(Sat) 13:02 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

> CGIの仕組みは、
> http://village.infoweb.ne.jp/~fwnd7095/perl/perl1_2.htm
> が一番簡単に読めます。

少し勉強します。皆さんいろいろありがとうございます。
現時点での、おやじの解釈は、
・.plだろうが.cgiだろうが、プログラムである以上、脆弱性のことを考えるとどこにおいても危ない。
・ドキュメントルートでのCGI実行を許可していると、ユーザがハックされればユーザレベルでなんでもできてしまう。
・CGI-BINならrootをとられなければ大丈夫。
ということで、少しドキュメントルートの方が危険かな? と思っています。


|目次|掲示板|過去ログ目次|▲頁先頭|