Rischio di sicurezza Java? [chiuso]

-4

Perché questo codice è considerato pericoloso o vulnerabile?

String sFileName = request.getParameter("fName");
if (sFileName.toLowerCase().endsWith(".pdf"))
// open file
else
// don’t open the file
    
posta SafetyNetter 19.05.2016 - 07:30
fonte

2 risposte

1

Oltre agli attacchi Path Traversal, questo codice potrebbe essere vulnerabile all'iniezione di Null-Byte. Per maggiori informazioni leggi questo .

Aggiornamento:

Come sottolineato da Maarten Bodewes, questo problema è stato risolto da Java 1.7.0_40. Ricordo che questa era una vulnerabilità in 1.6 però. Ad ogni modo quando dai un'occhiata al codice sorgente della classe File trovi che è stato aggiunto il metodo isInvalid() che esegue il controllo null-byte:

final boolean isInvalid() {
    if (status == null) {
        status = (this.path.indexOf('\u0000') < 0) ? PathStatus.CHECKED
                                                   : PathStatus.INVALID;
    }
    return status == PathStatus.INVALID;
}

Vedi anche questo post su stackoverflow .

    
risposta data 19.05.2016 - 08:42
fonte
0

In questo momento vedo 2 problemi con questo codice, a seconda del contesto.

  • Il fatto che il nome del file termini con .pdf non significa che sia un PDF file. Quale potrebbe portare a tutti i tipi di problemi.
  • Il codice dannoso può essere nascosto nelle macro dei file PDF.

Ma come ho detto, tutto dipende dal contesto.

    
risposta data 20.05.2016 - 09:29
fonte

Leggi altre domande sui tag