Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Взломали блог WordPress

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Взломали блог WordPress
evgenijj
Отправлено: 15 Января, 2011 - 01:38:25
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Во всех .php файлах был замечен код

Надо его удалить. Простой поиск в Yandex дал функцию
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $text = '~^<\?php.+eval.+?\?>\s*~';
  3. $retext = '';
  4.  
  5. scan_dir( '.' );
  6.  
  7. function scan_dir($dirname)
  8. {
  9.     // Объявляем переменные замены глобальными
  10.     GLOBAL $text, $retext;
  11.     // Открываем текущую директорию
  12.     $dir = opendir($dirname);
  13.     // Читаем в цикле директорию
  14.     while (($file = readdir($dir)) !== false)
  15.     {
  16.       // Если файл обрабатываем его содержимое
  17.       if($file != "." && $file != "..")
  18.       {
  19.         // Если имеем дело с .php файлом - производим в нём замену
  20.         if(is_file($dirname."/".$file) and substr($file, -4) == '.php')
  21.         {
  22.           // Читаем содержимое файла
  23.           $content = file_get_contents($dirname."/".$file);
  24.           // Осуществляем замену
  25.           $content = preg_replace($text, $retext, $content);
  26.           // Перезаписываем файл
  27.           file_put_contents($dirname."/".$file, $content);
  28.         }
  29.         // Если перед нами директория, вызываем рекурсивно
  30.         // функцию scan_dir
  31.         if(is_dir($dirname."/".$file))
  32.         {
  33.           echo $dirname."/".$file."<br/>";
  34.           scan_dir($dirname."/".$file);
  35.         }
  36.       }
  37.     }
  38.     // Закрываем директорию
  39.     closedir($dir);
  40.   }
  41. ?>

Тут есть лишь малая толика моих исправлений. Рекурсивный обход всех подкаталогов корневого каталога -- и удаление вредоносного кода.
 
 Top
Мелкий Супермодератор
Отправлено: 15 Января, 2011 - 12:11:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А чего код в eval делает-то? Не посмотрели?


-----
PostgreSQL DBA
 
 Top
Champion Супермодератор
Отправлено: 15 Января, 2011 - 13:03:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




evgenijj, регулярка очень может поломать файлы, если в них на самом деле был eval.
 
 Top
evgenijj
Отправлено: 21 Января, 2011 - 21:32:14
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Champion пишет:
evgenijj, регулярка очень может поломать файлы, если в них на самом деле был eval.

Очень даже может быть... Но регулярку каждый должен написать для себя сам... С другой стороны, меня всегда учили ГУГУ, что использование eval или global есть moveton и я никогда не позволял себе использовать eval или global. Думаю, в этом есть смысл, пусть и непонятный сразу... Это надо испытать на своей "шкуре" Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Наработки по собственным проектам »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB