Path traversal exploit

1

Ho un server Apache che sembra essere vulnerabile al path traversal, perché quando provo questo URL: http://localhost/ati/../test.txt

sarà cambiato in questo: http://localhost/test.txt e il server mostra il contenuto di test.txt file.

Tuttavia, quando provo questo URL: http://localhost/ati/../../../../../../../../../../../../../../../../../../../etc/apache2/apach2.conf verrà modificato in: http://localhost/etc/apache2/apache2.conf e quindi il server restituisce 404 Not found response e non mostra il contenuto di apache2.conf file.

La mia prima domanda è: Significa che sono sicuro contro l'attacco di attraversamento del percorso per il fatto che non ho cambiato alcuna impostazione predefinita di Apache sul mio server?

E la mia seconda domanda è: perché il server non consente di attraversare oltre la radice della cartella del server web? Cioè perché non riesco ad accedere ai file esterni rispetto alla cartella localhost sul mio server web? Come posso sfruttare il path traversal se il mio server è vulnerabile?

    
posta A.B. 14.01.2015 - 14:19
fonte

2 risposte

4

Apache stesso non dovrebbe servire file al di fuori del DocumentRoot configurato.

Il comportamento che stai descrivendo è molto probabilmente causato dal browser, che trasforma gli URL prima di inviarli al server.

Se utilizzi un proxy di intercettazione, noterai che per http://localhost/ati/../test.txt , il browser richiede effettivamente http://localhost/test.txt e per http://localhost/ati/../../../../../../../../../../../etc/apache2/apach2.conf , http://localhost/etc/apache2/apache2.conf è inviato al server.

Se vuoi verificare la vulnerabilità del path traversal dovresti usare un proxy.

    
risposta data 14.01.2015 - 15:40
fonte
1

Utilizza Telnet per inviare effettivamente la tua richiesta dannosa. Come ha sottolineato Dinu S, il browser sta minacciando la tua richiesta e Apache non dovrebbe servire a tutti questi file. Per controllare:

$ telnet 127.0.0.1 <server-port>

Quindi digita manualmente la richiesta:

 GET /../../../../../../../../../../../../../../../../../../../etc/apache2/apach2.conf HTTP/1.1

Se risponde con il tuo file apache.conf, allora sei vulnerabile. Se non lo sei, dovrebbe rispondere con un 404 o 503.

    
risposta data 14.01.2015 - 16:44
fonte

Leggi altre domande sui tag