寻找一个 shell 命令来读取最常见的图像类型的非二进制部分

寻找一个 shell 命令来读取最常见的图像类型的非二进制部分

我在专用服务器上托管的一个网站被黑客入侵了。一些图片被感染了,比如<?php eval(base64_decode(....));?>。我正在寻找一个通用的 shell 命令,它能够读取最常见图像类型(jpg、gif、tiff 等)的标头。

我试过杰黑德和其他的一样,jut jhead 只能从 JPG 读取 EXIF 数据。

目的是找到所有受感染的图像,如下所示:

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

答案1

grep -l可用于报告受感染的文件。尝试以下命令

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

-print0参数-0允许文件名和路径包含空格。

答案2

strings将显示在文件中找到的任何可打印位。从那里您可以将其输入grep以查找其中的文本。

相关内容