Ищем команду оболочки для чтения недвоичной части наиболее распространенных типов изображений

Веб-сайт, который я размещаю на своем выделенном сервере, был взломан. Некоторые картинки были заражены такими вещами, как <?php eval(base64_decode(....));?>, Я ищу общую команду оболочки, которая могла бы читать заголовки наиболее распространенных типов изображений (jpg, gif, tiff и т. Д.).

Я пробовал jhead и другие, только jhead может читать только данные EXIF ​​из JPG.

Цель состоит в том, чтобы найти все зараженные изображения, как это:

find -type f \( -iname "*jpg" -or -iname "*.jpeg" -or ... \) -exec sh -c 'magicimgheadersdisplay "{}" | grep eval" \;

2 ответа

Решение

grep -l может использоваться для сообщения о зараженных файлах. Попробуйте команду как

find -type f \( -iname "*jpg" -or -iname "*.jpeg" -or ... \) -print0 | xargs -0 grep -l '<?php eval(base64_decode'

-print0 а также -0 Аргументы позволяют именам файлов и путям содержать пробелы.

strings отобразит любые печатаемые биты, найденные в файле. Оттуда вы можете кормить его в grep найти текст внутри.

Другие вопросы по тегам