Protezione di sniffing MIME

9

Come è noto, le versioni precedenti di MSIE (prima di 8) hanno la pessima abitudine di trattare le immagini come HTML se "sembrano" HTML, il che può portare a brutte vulnerabilità per i siti che consentono alle persone di caricare immagini. Anche se è stato risolto in IE8, c'è ancora molto IE7 e prima, quindi è necessario affrontarlo. Quindi la domanda è: come è meglio affrontarlo, dato:

  1. Sito PHP con upload di file
  2. Non ricodifica immagini (ad esempio, non è possibile utilizzare ImageMagick)
  3. L'accesso diretto alle immagini dovrebbe essere consentito
  4. Non possiamo vietare alle persone di utilizzare l'estensione "errata"

Controllerebbe i primi 256 byte per qualcosa come < (html | body | img | script | head) > essere abbastanza? Qualche modo migliore per farlo?

    
posta StasM 17.04.2011 - 09:50
fonte

2 risposte

5

Il link è un eccellente riferimento generale del problema. Non è solo per le immagini, anche per i file txt e altri ...

    
risposta data 17.04.2011 - 13:40
fonte
4

No, controllare i primi 256 (o qualsiasi numero dato) byte è decisamente non abbastanza.

Anche se dovessi essere in grado di verificare (tra l'altro dovresti controllare circa 4K bytes ...) che non c'è HTML lì (ignorando la facilità di offuscare quell'HTML tramite codifiche ecc.), HTML non è l'unica possibilità maligna che potrebbe nascondersi all'interno della tua immagine (presumo che siano le immagini che vengono caricate?)

Ad esempio, vedi questa domanda sulla vulnerabilità dell'immagine danneggiata - non solo buffer overflow, ma come indicato dalla mia risposta la possibilità di GIFAR (e formati simili), che è essenzialmente sia una GIF completamente valida, ma anche un file JAR valido ed eseguibile. Questo perché non tutti i formati di file hanno le intestazioni all'inizio del file.
Quindi, controllare l'inizio non è esplicitamente la strada da percorrere.

    
risposta data 17.04.2011 - 15:09
fonte

Leggi altre domande sui tag