Поиск в файлах
Поиск командой find текста search_phrase в файлах .php:
find ./ -name "*.php" -exec grep -H -n 'search_phrase' '{}' \;
Формат поиска командой grep:
grep -r search_phrase * grep -rl "search_phrase" ./
Примеры поиска:
find ./ -name "*.php" -exec grep -H -n eval.*base64_decode '{}' \; find ./ -name "*.php" -exec grep -H -n eval.*stripslashes '{}' \; find ./ -name "*.php" -exec grep -H -n echo\s*\(\s*base64_decode '{}' \; find ./ -name "*.php" -exec grep -H -n $bindport_pass '{}' \; find ./ -name "*.php" -exec grep -H -n preg_replace\(\"\/\.\*\/e\" '{}' \; - находит совпадения в т.ч. и в phpmailer find ./ -name "*.php" -exec grep -H -n default_use_ajax '{}' \; find ./ -name "*.php" -exec grep -H -n '\3\4\2' '{}' \; find ./ -name "*.php" -exec grep -H -n eval\s*\(\s*$mdh\s*\(\s*$md\s*\(\s*strrev '{}' \; find ./ -name "*.php" -exec grep -H -n php_strip_whitespace '{}' \; find ./ -type f -iname "*.php" -mtime -7 # поиск файлов, измененных в течение последних 7 дней find ./ -type f -iname "*.php" -cmin -2 # поиск файлов, измененных за последние 2 минуты find ./ -name "*.php" -exec grep -H -n Content-Transfer-Encoding.*Message-ID '{}' \; find ./ -name "*.php" -exec grep -H -n touch\( '{}' \; - тоже находит совпадения в файлах джумлы find ./ -name "*.php" -exec grep -H -n ShellFinder '{}' \; find ./ -name "*.php" -exec grep -H -n \|blackberry\| '{}' \; find ./ -name "*.php" -exec grep -H -n _SAPE_USER '{}' \; find ./ -name "*.php" -exec grep -H -n table.*toolsTbl '{}' \; find ./ -name ".htaccess" -exec grep -H -n android '{}' \; find ./ -name "*.php" -exec grep -H -n move_uploaded_file '{}' \; find ./ -name "*.php" -exec grep -H -n array_diff_ukey '{}' \; find ./ -name "*.php" -exec grep -H -n libworker '{}' \; find ./ -name "*.php" -exec grep -H -n -i eval\s*\( '{}' \; - находит и безобидные выражения. но больше шансов найти заразу если она есть find ./ -name "*.php" -exec grep -H -n create_function '{}' \;
Параметры:
-i - отключает регистрозависимость. То есть строки Test, TEST, TeSt и т.д тоже будут найдены; -H - позволяет вывести имя файла, в котором найдено вхождение строки; -n - выводит номер строки найденного вхождения.
Поиск и удаление файлов:
find ./ -name "ccs.php" -delete находит и удаляет .jpg файлы с размером 1742 байта: find ./ -type f -name "*.jpg" -size 1742c -delete -delete обязательно указывать в самом конце, иначе будут удалены все файлы и папки от текущего местоположения
Поиск POST запросов в логах сервера, с выводом в текстовый файл:
find ./ -name "*.log" -exec grep -HnE '"POST /.*?" (200|301|303) ' '{}' \; > 123.txt
Еще вариант поиска:
find ./ -type f | xargs grep 'string_search'
Поиск пустых файлов
find . -type f -empty
Удаление пустых файлов
find . -type f -empty -exec rm {} \;
Поиск пустых директорий
find . -type d -empty
Удаление пустых директорий
find . -type d -empty -exec rmdir {} \;