Costruire il percorso del file dalla tabella del database che porta alla vulnerabilità CWE 73: Traversal delle directory

0

Ho una tabella in cui sono memorizzati il nome della macchina, il percorso della directory e i nomi dei file; quando richiesto, dovrei restituire il contenuto del file concatenando il nome_macchina + '\' + percorso_directory + '\' + nomefile ma questo viene elencato come vulnerabilità di attraversamento di directory. Mentre vedo che la tabella del database è trattata come una fonte contaminata, mi sto chiedendo come risolvere questa situazione. Ho provato a RandomAccessReferenceMap di ESAPI, funziona se scambio i riferimenti diretti e indiretti ma vorrei sapere se esiste un altro modo standard per formare i percorsi dalle tabelle del database.

    
posta Tech Junkie 16.03.2018 - 19:20
fonte

1 risposta

1

Se il database è considerato una fonte contaminata (che ha senso, ad esempio, se si desidera difendersi dalle modifiche nel database eseguite dall'iniezione SQL), è necessario seguire la procedura standard per disinfettare i contenuti . Quindi dovresti verificare che il nome della macchina contenga solo i caratteri consentiti (e se il punto è permesso: che non contiene punti consecutivi), che il percorso della directory non contiene '/../', inizia con '../' o termina con '/ ..' (forse anche una convalida più rigida) e che il nome del file almeno non contiene alcuna barra.

Probabilmente dovresti leggere sugli attacchi path traversal e sui criteri di convalida e sanitizzazione raccomandati per i nomi di file e percorsi invece di seguire ciecamente il mio suggerimento, poiché sono proprio ciò che mi è venuto in mente come requisiti minimi.

    
risposta data 17.03.2018 - 09:51
fonte

Leggi altre domande sui tag