Shell-Script

用於確定明顯圖像文件是否為真實圖像文件的腳本

  • September 22, 2021

我想創建一個 shell 腳本,它會檢查以確保目錄中表面上看起來是圖像文件的所有文件(例如,具有典型的圖像文件副檔名,如 .jpg、.bmp 等)實際上是圖像文件。

我們最近遇到了一個問題,黑客能夠在目錄中生成文件並將其屏蔽為 .jpg 文件。我想創建一個 shell 腳本來檢查目錄中的所有文件,以確保它們是真正的 jpg、gif 或 png 文件。

我認為您要非常小心地file在您提供完全不受信任的輸入的情況下使用。例如,RHEL 5file將辨識這一點:

GIF87a
<?php
echo "Hello from PHP!\n";
?>

作為“GIF 圖像數據,版本 87a,15370 x 28735”。PHP 解釋器可以毫無問題地執行該輸入。沒有麻煩是“本地文件包含”(LFI)問題的基礎。

其次,file(甚至strings)實際上解析輸入文件以告訴您您想知道的內容。這些解析器很複雜並且有問題

我將建議使用ImageMagick套件identify中的命令。它並沒有被我上面的簡單範例所迷惑,它只正確解析圖像文件,因此它應該比.file

引用自:https://unix.stackexchange.com/questions/189364