- PR -

suidperlでwebからグループ追加したいのですが…

1
投稿者投稿内容
ひろ
会議室デビュー日: 2004/05/11
投稿数: 6
投稿日時: 2004-05-11 16:25
下記のPerlスクリプトを、
パーミッションを4755に設定して、
WEBから実行するとグループが追加されます。

#!/usr/bin/suidperl
$ENV{PATH}="";
print "Content-type: text/html\n\n";
printf "I am %s.\n",(getpwuid($>))[0];
`/usr/sbin/groupadd -g 1001 test_group`;

しかし、次のようにグループ名をブラウザから渡そうとすると
うまく行きません。

#!/usr/bin/suidperl
require "./cgi-lib.pl";
&ReadParse();
$ENV{PATH}="";
print "Content-type: text/html\n\n";
$gid = 1001;
$groupname = $in{groupname};
$cmd_option = "-g $gid $groupname";
system("/usr/sbin/groupadd ", $cmd_option);
print "グループ追加\n";

アパッチのエラーログを見ると、問題は、perlのtaint機能にあり、変数が汚染されている恐れがあるため、実行できないようです。

↓ご参照URL
http://www.kt.rim.or.jp/~kbk/perl5.005/perlsec.html


system関数に引数で「汚染されている恐れのある変数」を渡すと汚染検査は行われないとこのページには書いてあるのですが、どなたか、このtaint機能を回避できました方がいらっしゃいましたら、是非、ご教示をお願い致します。

system関数の使い方が悪いのでしょうか???
ひろ
会議室デビュー日: 2004/05/11
投稿数: 6
投稿日時: 2004-05-12 10:41
すみません。
私の凡ミスで、同ページの説明で解決しました!
何しろ、一人なもので、このような凡ミスを指摘してくれる人もいません。
今後もよろしくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)