tags: File_Upload File_Upload_Offuscamento


Esistono diversi metodi di offuscamento, eccone alcuni:

Fornire più estensioni:

A seconda dell’algoritmo utilizzato per analizzare il nome del file, il seguente file potrebbe essere interpretato come un file PHP o un’immagine JPG:

exploit.php.jpg

Aggiungere caratteri finali:

Alcuni componenti rimuovono o ignorano gli spazi, i punti e simili alla fine del file:

exploit.php.

Provare a utilizzare la codifica URL (o la doppia codifica URL) per punti, barre e barre rovesciate.

Se il valore non viene decodificato durante la convalida dell’estensione del file, ma viene decodificato successivamente lato server, questo può consentire di caricare file dannosi che altrimenti verrebbero bloccati:

exploit%2Ephp

Aggiungere punti e virgola o caratteri nulli codificati in URL prima dell’estensione del file:

Se la validazione è scritta in un linguaggio di alto livello come PHP o Java, ma il server elabora il file utilizzando funzioni di livello inferiore in C/C++, ad esempio, ciò può causare discrepanze in ciò che viene considerato la fine del nome del file:

 
exploit.asp;.jpg 
 
#Oppure
 
exploit.asp%00.jpg
 

Prova a utilizzare caratteri Unicode multibyte, che possono essere convertiti in byte nulli e punti dopo la conversione o la normalizzazione Unicode.

Sequenze come xC0 x2E, xC4 xAE o xC0 xAE possono essere tradotte in x2E se il nome del file viene analizzato come stringa UTF-8, ma poi convertite in caratteri ASCII prima di essere utilizzate in un percorso.

Raddoppio estensione

Altre difese prevedono la rimozione o la sostituzione delle estensioni pericolose per impedire l’esecuzione del file. Se questa trasformazione non viene applicata ricorsivamente, è possibile posizionare la stringa proibita in modo tale che la sua rimozione lasci comunque un’estensione di file valida. Ad esempio, considera cosa succede se rimuovi .php dal seguente nome di file:

exploit.p.phphp