• BUG di sicurezza ... iniezione ed esecuzione di codice php dall'esterno 5 2
Currently:  

Autore Topic: BUG di sicurezza ... iniezione ed esecuzione di codice php dall'esterno  (Letto 2336 volte)

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
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.
« Ultima modifica: 19 Luglio, 2014, 09:21:25 da serzio »

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:BUG di sicurezza ... iniezione ed esecuzione di codice php dall'esterno
« Risposta #1 il: 23 Luglio, 2014, 09:58:02 »
La risposta ufficiale che icm mi ha mandato è che si tratta di un comportamento voluto ed esplicitamente richiesto: "Inoltre, nel caso abbia l'esigenza di farsi inviare dei file php per poi eseguirli direttamente sul server (funzionalità esplicitamente richiesta), potrà farlo."

Pertanto, credo sia sciocco attendere una soluzione al problema in quanto, secondo loro, non si tratta di un problema, ma di un comportamento voluto su richiesta esplicita. [ Guests cannot view attachments ]

Certamente, molti, per farsi inviare un file in php da eseguire direttamente sul server avrebbero scelto strade diverse ... che so .... un attachment via email o un upload sul sito in qualche area protetta .... e invece, possono farlo mediante l'invio tramite form ma solo se questo è realizzato per inviare i dati ad un db.

Approposito .... ecco come vengono gestiti gli attachment mediante form o altro da altri software:

[ Guests cannot view attachments ]

Piuttosto che così:

[ Guests cannot view attachments ]