Sì e no.
Le immagini sono solo dati e in quanto tali non si differenziano dai campi modulo, dai parametri GET o da qualsiasi altro tipo di dati forniti dall'utente. Non c'è davvero nulla di speciale su di loro, tranne che la maggior parte degli altri dati che riceverai è testuale e che in genere non contengono nulla che "potrebbe somigliare a SQL". Quest'ultima è una falsa ipotesi, dato che la maggior parte dei formati di file di immagini soddisfano i metadati, il che rende estremamente facile incorporarli in SQL e, anche se non lo fanno, creare un file immagine che contiene SQL come parte del flusso di dati binari non dovrebbe essere troppo difficile.
Per farla breve: se hai la parametrizzazione della tua query in ordine (cosa che dovresti comunque), allora hai esattamente tanto da temere come con qualsiasi altro dato fornito dall'utente: finché passi il blob dell'immagine come parametro e le chiamate di parametrizzazione dell'API del database non sono vulnerabili, sei bravo. Se, tuttavia, decidi di concatenare elementi nella tua query che sono stati estratti da un file caricato, hai un problema esattamente identico a quello che avresti se avessi una vulnerabilità SQLi attraverso un campo modulo.
Un'altra cosa che devi cercare con i file caricati è l'esecuzione di codice in modalità remota . Se non stai attento, un utente malintenzionato può caricare un file PHP, mascherato come un'immagine, e ingannare lo script per salvarlo in una posizione dove può essere raggiunto ed eseguito tramite apache (o, peggio, in una posizione dove viene rilevato da un processo locale del sistema, nel peggiore dei casi, uno che viene eseguito come root). Qui la difesa deve verificare e autorizzare il tipo MIME di un file, assicurarsi che la sua estensione corrisponda al tipo MIME, disinfettare (o semplicemente sostituire completamente) il nome del file e memorizzarlo da qualche parte al di fuori della docroot.