もう一つのタイプがあると思っています。上のような、レスにつくタイプです。
これは「返信」をクリックするのと同じことをプログラミングしていると思われ、私のところには数回しかきていないので十分検証はしていないのですが。
修正は以下の掲示板に書きましたが、多いので、ここではその元として組んだPerlによる修正スクリプトを書いておきます。
http://www.dtmtown.com/cyclamen/cyclamen.cgi?tree=s529#535 使い方は、実行するフォルダの親フォルダに元となるcgi(cyclamen.cgi,cylib.cgi)を置いておき、スクリプトを実行すると修正されたcgiがそこにできます。
open (OUT,">cyclamen.cgi");
open (IN,"../cyclamen.cgi");
binmode (IN);
$/ = '\n';
while (<IN>) {
# スパム
s/\$CMD\{'res'\}/\$CMD{'tes'}/g;
s/"res=/"tes=/g;
s/elsif \(\(\$CMD\{'tes'\}/elsif (\$CMD{'res'}){open(ACC,">> acclog.cgi");print ACC "\\n\$date_num \$CMD{'log'} 【res\$CMD{'res'}】\\t\$ENV{'REMOTE_ADDR'}\\n\\t\$ENV{'HTT
P_USER_AGENT'}";close(ACC);chmod(\$f_pmt,"acclog.cgi");&error('禁止語句が含まれています.');\n}\nelsif ((\$CMD{'tes'}/;
s/\x0d//g;
printf OUT "%s", $_;
}
close(IN);
close(OUT);
open (OUT,">cylib.cgi");
open (IN,"../cylib.cgi");
binmode (IN);
$/ = '\n';
while (<IN>) {
# スパム
s/\$CMD\{'res'\}/\$CMD{'tes'}/g;
s/\x0d//g;
printf OUT "%s", $_;
}
close(IN);
close(OUT);