/var/log/life.log
Блог программиста из солнечной Бурятии

anti iframer

Достался мне похаканый сайтик на joomla, который был жестоко проифрэймлен. Симптомы такие, во всех папках до 3-го уровня вложенности, где есть один из файлов index.html, index.php, default.php добавлен .htaccess и втсавлены iframe в эти файлы. Пришлось писать «удалятор» этих пакостей. Т.к. это joomal то index.html используются лишь для того, чтобы запретить просмотр содержимого каталогов на сайте, то их я просто очищаю, а из остальных пришлось гадость вырезать:

<?php
function fixIframe($directory, $level, $day) {
        if ($handle = opendir($directory)) {
            while (false !== ($file = readdir($handle))) {
                if ($file != "." && $file != "..") {
                    if (is_dir($directory. "/" . $file)) {
                        if($level > 0) {
                            fixIframe($directory. "/" . $file, $level - 1, $day);
                        }
                    } else {
                            $path = $directory . "/" . $file;

                        if (date("mdYH", filemtime($path)) == $day){
                            switch($file){
                                case ".htaccess":@unlink($path);break;
                                case "index.html":copy($path,$path.".bak");$f=fopen($path,"w");fclose($f);break;
                                case "index.php":                              
                                case "default.php":copy($path,$path.".bak");
                                    $content = file_get_contents($path);
                                    file_put_contents($path,preg_replace("#(.*?)(<\\?php echo '<\\?eval\\(base64_decod.*?\\);\\?>'; \\?>)(.*)#","\\1\\3",$content));
                                    break;
                            }

                        }
                       
                    }
                }
            }
            closedir($handle);
        }
}
fixIframe("./", 3, '0828200905');
?>

0828200905 — это день атаки, что мне показалось неожиданным, так это то, что процесс записи этого вредоносного кода занял несколько часов.

6 комментариев на запись «anti iframer»

  1. Дмитрий пишет:

    А ifram-ы были добавлены в конец файлов?
    Я вроде с таким встречался. Тогда был заражен весь хостинг и после удаления фрейма он опять появлялся в конце.
    Но я сделал так просто в конце inex.php дописал exit() и даже когда фрейм опять дописывался в файл он просто не отобрался.

  2. Дмитрий пишет:

    А ifram-ы были добавлены в конец файлов?
    Я вроде с таким встречался. Тогда был заражен весь хостинг и после удаления фрейма он опять появлялся в конце.
    Но я сделал так просто в конце inex.php дописал exit() и даже когда фрейм опять дописывался в файл он просто не отобрался.

  3. VampiRUS пишет:

    Судя по всему да, в конец. У меня подозрение, что тоже весь хоcтинг заражён, посмотрим что будет. С exit() идея интересная, спасибо.

  4. VampiRUS пишет:

    Судя по всему да, в конец. У меня подозрение, что тоже весь хоcтинг заражён, посмотрим что будет. С exit() идея интересная, спасибо.

  5. VampiRUS пишет:

    хотя для joomla такое не подойдёт, там вель инклудятся они

  6. VampiRUS пишет:

    хотя для joomla такое не подойдёт, там вель инклудятся они

Оставить комментарий

Вы так же можете оставить комментарий используя ваш OpenId, для этого нужно войти.