Pentesting mio caricamento file server proprio

1

Recentemente ho creato il mio server IIS (impostato sulla versione 7.5) e stavo controllando per assicurarmi che il mio webdav non fosse vulnerabile. I miei utenti devono caricare i file sui loro account individuali e possono accedervi tramite un collegamento diretto al server, e al momento ho disabilitato tutti gli script pericolosi / sul server da caricare (php (php3, php4, php5, ecc) perl, net, asp, htaccess files, ecc.) ma permetto comunque il caricamento di immagini, file exe e html.

Ho solo disabilitato le estensioni dal caricamento ma finora non ho trovato nulla di vulnerabile in questo modo. Questo copre possibili attacchi di caricamento file?

    
posta user2852841 13.10.2013 - 18:34
fonte

3 risposte

2

Stai usando PHP? Ci sono un paio di cose da tenere a mente. Ho scritto questo articolo all'inizio di quest'anno che copre i caricamenti di file e altri argomenti. Creative Commons quindi sentiti libero di salvare una copia, modificare e condividere come vorresti: link

"Cripta i tuoi file, memorizzali in un nome file casuale in una specifica directory non-webroot e utilizza un database per tenere traccia dei loro metadati (tipo, nome file, dimensione) .Utilizza uno script per consegnarli dal filesystem, e usa le chiamate header () e riscrive le direttive per ingannare i browser e trattarli come immagini. Cache pesantemente per evitare l'esaurimento delle risorse. "

Non è necessario necessariamente crittografarli; gzip comprimendoli o codificandoli in base64 impediranno l'esecuzione nel caso in cui riescano ad accedere direttamente al file. Raccomando di astrarre il nome file che le persone vedono lontano da ciò che è effettivamente presente nel filesystem . Mentre questo potrebbe essere contestato dalle persone come una forma di "sicurezza attraverso l'oscurità", ma se si memorizza tutto come un file .txt, nulla verrà mai eseguito attraverso l'accesso a un file caricato.

Una cosa molto importante: Non fare affidamento sull'estensione del file o sul valore $ _FILES ['abc'] ['type'] fornito dall'utente. Possono essere falsificati.

    
risposta data 13.10.2013 - 18:42
fonte
1

Alcuni punti fondamentali che tengo a mente in questa situazione sono:

  • definisce un file .htaccess e specifica quali sono consentiti tutti i formati al suo interno. Non metti il file .htaccess nella stessa directory dei file caricati.
  • Specifica nel file .htaccess, le estensioni consentite. Utilizza alcune espressioni regolari per impedire l'attacco con doppia estensione.

  • Carica file in posizione diversa da server root.

  • Non consentire la sovrascrittura di file esistenti nella directory di caricamento.
  • Crea un elenco di tipi mime consentiti.
  • Non fare affidamento solo sulla convalida lato client, poiché non è sufficiente. Idealmente si dovrebbe implementare sia la convalida lato server sia quella lato client.

P.S: li ho presi da un paio di siti e ora non ho i loro link. Questi suggerimenti erano nei miei appunti personali. Ci scusiamo per non aver dato il giusto credito.

    
risposta data 13.10.2013 - 18:54
fonte
0

Vengono caricati nei propri domini separati? In caso contrario, il tuo sistema potrebbe essere vulnerabile a XSS.

Assicurati inoltre di aver risolto tutti i punti sollevati qui: link

    
risposta data 14.10.2013 - 11:25
fonte

Leggi altre domande sui tag