Поиск в файлах
Поиск командой find текста search_phrase в файлах .php:
find ./ -type f -name "*.php" -exec grep -H -n 'search_phrase' '{}' \; Формат поиска командой grep:
grep -r search_phrase * grep -rl "search_phrase" ./
Примеры поиска:
find ./ -type f -name "*.php" -exec grep -H -n eval.*base64_decode '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n eval.*stripslashes '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n echo\s*\(\s*base64_decode '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n $bindport_pass '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n preg_replace\(\"\/\.\*\/e\" '{}' \; - находит совпадения в т.ч. и в phpmailer
find ./ -type f -name "*.php" -exec grep -H -n default_use_ajax '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n '\3\4\2' '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n eval\s*\(\s*$mdh\s*\(\s*$md\s*\(\s*strrev '{}' \;
find ./ -type f -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 ./ -type f -name "*.php" -exec grep -H -n Content-Transfer-Encoding.*Message-ID '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n touch\( '{}' \; - тоже находит совпадения в файлах джумлы
find ./ -type f -name "*.php" -exec grep -H -n ShellFinder '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n \|blackberry\| '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n _SAPE_USER '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n table.*toolsTbl '{}' \;
find ./ -type f -name ".htaccess" -exec grep -H -n android '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n move_uploaded_file '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n array_diff_ukey '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n libworker '{}' \;
find ./ -type f -name "*.php" -exec grep -H -n -i eval\s*\( '{}' \; - находит и безобидные выражения. но больше шансов найти заразу если она есть
find ./ -type f -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 {} \;