Differenza tra directory traversal e inclusione di file

8

Credo che il titolo dica tutto. Non sembra esserci alcuna differenza evidente tra le vulnerabilità di directory traversal e di inclusione dei file.

Ma immagino ci sia qualche differenza, dal momento che www.cvedetails.com usa le seguenti categorizzazioni:

 Bypass a restriction or similar 
 Cross Site Scripting 
 Denial of service 
 Directory Traversal 
 Execute arbitrary code on vulnerable system 
 Gain Privileges
 Http Response Splitting 
 Memory Corruption 
 Obtain information 
 Overflow vulnerability (includes stack and heap based overflows and other overflows) 
 Cross site request forgery(CSRF) 
 File Inclusion 
 Sql Injection

Tra questi possiamo notare entrambi attraversamento di directory e inclusione di file , quindi devono essere diversi in qualche modo.

    
posta eleanor 17.02.2012 - 20:11
fonte

3 risposte

9

Fondamentalmente, la differenza è che con una vulnerabilità di inclusione dei file, la risorsa viene caricata e eseguita nel contesto dell'applicazione corrente. Una vulnerabilità di attraversamento di directory, d'altra parte, ti dà solo la possibilità di leggere la risorsa.

    
risposta data 18.02.2012 - 08:05
fonte
6

File di esempio:

  • Il file A è ../../../../ configure.php

  • Il file B è index.php

C'è una differenza tra l'essere in grado di attraversare le directory per accedere al file A (ad esempio) per leggerne il contenuto e quello di essere in grado di includere il contenuto del file A, ospitato localmente o in remoto, nell'esecuzione della pagina di un altro file.

Se esistesse un attraversamento di directory per consentire all'utente malintenzionato di accedere al file A, dovrebbero almeno non essere in grado di leggerne il contenuto. Tuttavia se il file B contiene questa riga (o simile):

if ( isset( $_GET[ 'id' ] ) ) include( $_GET[ 'id' ] . ".php" );

Quindi è possibile avere il contenuto del file A incluso nella codifica base64, nel file B in quello che viene chiamato un attacco Local File Inclusion.

index.php?id=php://filter/read=convert.base64-encode/resource=../../../../config

È così che capisco la differenza.

    
risposta data 17.02.2012 - 20:42
fonte
0

La principale differenza tra LFI e Directory Traversal è la seguente

LFI : l'IT ha la capacità di eseguire il file. Può essere codice shell o altro file locale che esiste nel sistema

Attraversamento directory : attraversa solo i file, quindi possiamo solo leggerlo. Non può eseguire file. Questo è il tipo di informazione sensibile delle informazioni

    
risposta data 29.11.2018 - 05:35
fonte

Leggi altre domande sui tag