Вы когда-нибудь изучали web сервер в Internet, путем модификации его URL? К примеру, давайте взглянем на U.S. Census Page, которая находится по адресу http://cedr.lbl.gov/cdrom/doc/lookup_doc.html
Предположим, что мы заинтересованы в том, чтобы также и другие файлы находились в каталоге "/doc" (это могут быть документы, находящиеся в стадии разработки, или просто документы о которых забыли, или же документы, предназначеные для внутреннего пользования). Теперь просто удаляем часть строки, содержащую имя документа "lookup_doc.html". Останется "http://cedr.lbl.gov/cdrom/doc/". И наблюдаем, настроен ли их сервер на генерацию динамического списка.
В данном случае фокус удался и мы получаем сгенерированный сервером динамический индекс каталога "/doc", методом удаления части строки.
Таким образом мы можем видеть сгенерированный список всех файлов и подкаталогов. Фактически, множество серверов в сети сконфигурированы так, что если пользоватьель не указал конкретного имени документа, типа "index.html", то сервер выведет распечатку каталога очень похожую на эту. Все бы ничего, но если сервер настроен так, что можно аналогичным способом получить индекс каталога, где находятся cgi-скрипты, то последствия могут обернуться для системы очень плачевно:
Что вы думаете произойдет, когда пользователь нажмет на файл "auth.setup"? Так как web-сервер должен будет выполнить этот CGI скрипт, соответственно он должен будет также иметь разрешение на его чтение. Таким образом хакер получит содержимое вашего setup-файла в окне браузера. Как вы понимаете данный файл может содержать в себе различные ключи, пути, кофигурационные настройки - и это не единственные файлы несущие в себе компроментирующие данные. Другие файлы могут оказаться файлами паролей, временными файлами, файлами пользователей и другими файлами, которые могут дать хакеру информацию, позволяющую использовать вашу систему в его интересах.
Для предотвращения подобных ситуаций необходимо выполнять следущие правила: