GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Skript, um festzustellen, ob Dateien Bilder sind?

Ich möchte ein Shell-Skript erstellen, das überprüft, ob alle Dateien in einem Verzeichnis Bilddateien sind.

Wir hatten kürzlich ein Problem, bei dem ein Hacker eine Datei in einem Verzeichnis generieren und als .jpg-Datei maskieren konnte. Ich möchte ein Shell-Skript erstellen, um alle Dateien im Verzeichnis zu überprüfen, um sicherzustellen, dass es sich um echte JPG-, GIF- oder PNG-Dateien handelt.

Akzeptierte Antwort:

Ich denke, Sie sollten bei der Verwendung von file sehr vorsichtig sein in einem Umstand, in dem Sie ihm völlig unzuverlässige Eingaben machen. Beispiel:RHEL 5 file wird dies identifizieren:

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

Als „GIF-Bilddaten, Version 87a, 15370 x 28735“. Der PHP-Interpreter hat keine Probleme, diese Eingabe auszuführen. Dieser Mangel an Problemen ist die Grundlage für „Local File Inclusion“ (LFI)-Probleme.

Zweitens file (und sogar strings ) tatsächlich Eingabedateien analysieren, um Ihnen mitzuteilen, was Sie wissen möchten. Diese Parser sind kompliziert und haben Probleme.

Ich werde den identify vorschlagen Befehl aus der ImageMagick-Suite. Es lässt sich von meinem einfachen obigen Beispiel nicht täuschen und analysiert nur Bilddateien korrekt, sodass es weniger anfällig für Sicherheitslücken sein sollte als file .


Linux
  1. Zählen Sie Zeilen in großen Dateien

  2. Entfernen Sie Dateien, die in einer Textdatei aufgeführt sind

  3. Werden Dateien sequentiell auf der Festplatte gespeichert?

  4. Shebang oder nicht Shebang

  5. Bestimmen Sie, ob das Dateisystem oder die Partition RO oder RW über Bash Script gemountet ist?

Cp-Befehl in Linux (Dateien kopieren)

35 Bash-Skriptbeispiele

So benennen Sie eine Datei (en) in Linux um

Steganographie – Dateien in Bildern unter Linux verstecken

Übertragen Sie Dateien mit WinSCP

So komprimieren Sie eine Datei unter Linux