GNU/Linux >> Znalost Linux >  >> Linux

Skript pro zjištění, zda jsou soubory obrázky?

Chtěl bych vytvořit skript shellu, který zkontroluje, zda všechny soubory v adresáři jsou soubory obrázků.

Nedávno jsme měli problém, kdy hacker dokázal vygenerovat soubor v adresáři a maskovat jej jako soubor .jpg. Chtěl bych vytvořit skript shellu, který zkontroluje všechny soubory v adresáři, abych se ujistil, že se jedná o skutečné soubory jpg, gif nebo png.

Přijatá odpověď:

Myslím, že byste měli být velmi opatrní při používání file v situaci, kdy tomu dáte zcela nedůvěryhodný vstup. Například RHEL 5 file identifikuje toto:

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

Jako „obrázková data GIF, verze 87a, 15370 x 28735“. Interpret PHP nemá problémy s prováděním tohoto vstupu. Tento nedostatek problémů je základem problémů „začlenění místních souborů“ (LFI).

Za druhé, file (a dokonce i strings ) ve skutečnosti analyzovat vstupní soubory, aby vám řekly, co chcete vědět. Tyto analyzátory jsou složité a mají problémy.

Navrhuji identify příkaz ze sady ImageMagick. Není oklamán mým jednoduchým příkladem výše a správně analyzuje pouze obrazové soubory, takže by měl být méně náchylný k bezpečnostním chybám než file .


Linux
  1. Může být Bash skript připojen k souboru?

  2. Určit prostředí ve skriptu za běhu?

  3. Shell skript pro přesun nejstarších souborů?

  1. Skrytí dat v souborových systémech?

  2. Odeberte soubory, které jsou uvedeny v textovém souboru

  3. shebang nebo ne shebang

  1. Přesouvání souborů na Linuxu bez mv

  2. Otestovat, zda existují soubory odpovídající vzoru, aby bylo možné spustit skript?

  3. Co jsou řídké soubory v Linuxu