Il BUG si verifica con l'utilizzo del modulo EMAIL con le seguenti condizioni:
- invio di allegati verso DB piuttosto che email
- mancato utilizzo di una cartella con nome complesso per la memorizzazione degli allegati
Per ovvie ragioni di sicurezza non ho reso disponibile lo script che esegue l'exploit, ma pubblico solo qualche screenshot e spiego la questione sommariamente.
Ipotizziamo di avere una pagina con un modulo per email che richieda un allegato
[ Guests cannot view attachments ]
Tale allegato viene inserito nella cartella impostata al passo 4 ... e qui risulta evidente l'importanza di scegliere un nome "
difficile":
[ Guests cannot view attachments ]
A questo punto l'allegato inserito dal "visitatore" viene rinominato aggiungendo il suffisso _abcd con a, b, c e d simboli da 0 a 9 (fino ad ora, nelle varie prove che ho effettuato non ho mai visto simboli diversi e d'altra parte, non ho voglia di studiarmi il codice di incomedia per imparare il criterio di riassegnazione dei nomi) e lasciando invariata l'estensione .... e qui nascerebbe spontanea una consideazione, ma se la faccio, qualcuno sicuramente mi dice che sono polemico .... e quindi preferisco tacere.
Infine, tramite un semplice script che non fa altro che iterare tra i nomi possibili (10000 iterazioni al massimo, ma evidentemente non è assolutament necessario eseguirle tutte) si arriva a richiamare lo script, precedentemente inviato tramite modulo, mediante la funzione php
curl_exec() ... ecco il risultato
[ Guests cannot view attachments ]
Si potrebbe obiettare che si tratta di un metodo "rozzo" e lungo. Giustissimo, ma garantire la sicurezza significa fare in modo che NON ci sia la possibilità di fare danni e non lasciare al caso il compito di rendere difficile gli exploit. Per garantire, con ragionevole sicurezza, che non ci possano essere exploit di questo tipo, basterebbe
rinominare i files allegati rendendoli inerti, ovvero modificandone l'estensione .... anche solo aggiungendoci un undescore alla fine. Cosa già detta a suo tempo.
PS. Un BUG del tutto analogo fu segnalato
<QUI> ... della serie ... perseverare è diabolico ... mi chiedo come sia possibile non immaginare che sia rischioso non modificare le estensioni per TUTTI i files provenienti dall'esterno.