Explotación transversal de ruta

1

Tengo un servidor Apache que parece ser vulnerable al paso de ruta, porque cuando pruebo esta URL: http://localhost/ati/../test.txt

se cambiará a esto: http://localhost/test.txt y el servidor muestra el contenido del archivo test.txt .

Sin embargo, cuando pruebo esta URL: http://localhost/ati/../../../../../../../../../../../../../../../../../../../etc/apache2/apach2.conf se cambiará a: http://localhost/etc/apache2/apache2.conf y, por lo tanto, el servidor proporciona un 404 Not found response y no muestra el contenido del archivo apache2.conf .

Mi primera pregunta es: ¿Significa que estoy seguro contra ataques de paso de ruta con respecto al hecho de que no he cambiado ninguna configuración predeterminada de Apache en mi servidor?

Y mi segunda pregunta es: ¿por qué el servidor no permite atravesar la raíz de la carpeta del servidor web? Es decir. ¿Por qué no puedo acceder a los archivos externos que la carpeta localhost en mi servidor web? ¿Cómo puedo explotar el recorrido de la ruta si mi servidor es vulnerable?

    
pregunta A.B. 14.01.2015 - 14:19
fuente

2 respuestas

4

El propio Apache no debe servir archivos fuera del DocumentRoot configurado.

El comportamiento que está describiendo es probablemente causado por el navegador, que transforma las URL antes de enviarlas al servidor.

Si utiliza un proxy interceptor, notará que para http://localhost/ati/../test.txt , el navegador realmente solicita http://localhost/test.txt y para http://localhost/ati/../../../../../../../../../../../etc/apache2/apach2.conf , http://localhost/etc/apache2/apache2.conf se envía al servidor.

Si desea comprobar la vulnerabilidad del paso de ruta, debe usar un proxy.

    
respondido por el Dinu S 14.01.2015 - 15:40
fuente
1

Use Telnet para enviar su solicitud maliciosa. Como señaló Dinu S, el navegador está modificando su solicitud, y Apache no debe servir estos archivos en absoluto. Para comprobar:

$ telnet 127.0.0.1 <server-port>

Luego escriba manualmente la solicitud:

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

Si responde con su archivo apache.conf, entonces usted es vulnerable. Si no lo eres, debería responder con un 404 o 503.

    
respondido por el Ohnana 14.01.2015 - 16:44
fuente

Lea otras preguntas en las etiquetas