2015-08-14 3 views
0

Я помню, как некоторое время назад можно было получить доступ к вашей файловой системе компьютера с веб-сайта. Я хочу знать, как это сделать, поэтому я могу проверить и предотвратить это.Как получить доступ к родительскому каталогу public_html в Apache?

Запуск Apache 2.4 на Windows, с помощью XAMPP

Мой VirtualHost устанавливается следующим образом:

<VirtualHost *:80> 
    ServerName local.scrap 
    DocumentRoot "D:/Dropbox/www/scrap/public_html/" 
    <Directory "D:/Dropbox/www/scrap/"> 
    Order allow,deny 
    Allow from all 
    Require all granted 
    </Directory> 
    ErrorLog "D:/Dropbox/www/scrap/logs/error.log" 
</VirtualHost> 

Существует index2.html в scrap/ и index.html в scrap/public_html/

хостами устанавливается, чтобы быть 127.0.0.1 local.scrap

Если я нахожу URL-адрес http://local.scrap/ Я получаю index.html. Если я набираю URL-адрес http://local.scrap/../index2.html, он перенаправляется на http://local.scrap/index2.html

Почему URL-адрес перенаправляется на путь DocumentRoot?

+0

Это была бы ужасная проблема с безопасностью, если вы получили доступ к родительскому каталогу 'public_html'. Apache предназначен для запрещения именно такого поведения. – larsks

ответ

1

Часто вредоносный пользовательский агент разрешает ../ в URL-адресе до его контакта с сервером. Но даже без этого веб-серверы проектируются таким образом, чтобы не допускать такой обход каталога вне корней контекста.

Вам необходимо протестировать с помощью telnet/netcat/s_client.