GNU/Linux >> Linux Esercitazione >  >> Linux

Script per determinare se i file sono immagini?

Vorrei creare uno script di shell che verificherà che tutti i file in una directory siano file di immagine.

Di recente abbiamo riscontrato un problema per cui un hacker è stato in grado di generare un file in una directory e mascherarlo come file .jpg. Vorrei creare uno script di shell per controllare tutti i file nella directory per assicurarmi che siano file jpg, gif o png reali.

Risposta accettata:

Penso che tu voglia stare molto attento nell'usare file in una circostanza in cui gli dai un input completamente non attendibile. Ad esempio, RHEL 5 file identificherà questo:

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

Come "Dati immagine GIF, versione 87a, 15370 x 28735". L'interprete PHP non ha problemi a eseguire quell'input. Questa mancanza di problemi è alla base dei problemi di "inclusione di file locali" (LFI).

Secondo, file (e anche strings ) analizza effettivamente i file di input per dirti cosa vuoi sapere. Questi parser sono complicati e presentano problemi.

Ho intenzione di suggerire il identify comando dalla suite ImageMagick. Non è ingannato dal mio semplice esempio sopra, e analizza solo i file di immagine correttamente, quindi dovrebbe essere meno soggetto a difetti di sicurezza rispetto a file .


Linux
  1. Uno script Bash può essere agganciato a un file?

  2. Determinare la shell nello script durante il runtime?

  3. Script Shell per spostare i file più vecchi?

  4. Nascondere i dati nei filesystem?

  5. Contare le righe in file di grandi dimensioni

Comando Cp in Linux (copia file)

35 Esempi di script Bash

Come rinominare uno o più file in Linux

Steganografia:nascondi i file all'interno delle immagini in Linux

Trasferisci file usando WinSCP

Come comprimere un file in Linux