Обратный путь в директориях

Опубликовано в Безопасность, Безопасность веб-серверов

Обратный путь в директориях. Данная техника атак направлена на получение доступа к файлам, директориям и командам, находящимся вне основной директории веб-сервера.

Злоумышленник может манипулировать параметрами URL с целью получить доступ к файлам или выполнить команды, располагаемые в файловой системе веб-сервера.

Обратный путь в директориях


При подобных атаках потенциально уязвимо любое устройство, имеющее веб-интерфейс. Многие веб-серверы ограничивают доступ пользователя определенной частью файловой системы, обычно называемой web document root или CGI root. Эти директории содержат файлы, предназначенные для пользователя, и программы, необходимые для получения доступа к функциям веб-приложения.

Большинство базовых атак, эксплуатирующих обратный путь, основаны на внедрении в URL-символов .../, чтобы изменить расположение ресурса, который будет обрабатываться сервером. Поскольку большинство вебсерверов фильтруют эту последовательность, злоумышленник может воспользоваться альтернативными кодировками для представления символов перехода по директориям. Популярные приемы включают использование альтернативных кодировок, например Unicode (...%u2216 или ...%c0%af), использование обратного слэша (...\) в Windows-серверах, символов URLEncode (%2e%2e%2f) или двойной кодировки URLEncode (...%2 55c).

Даже если вебсервер ограничивает доступ к файлам определенным каталогом, эта уязвимость может возникать в сценариях или CGI-программах. Возможность использования обратного пути в каталогах довольно часто возникает в приложениях, использующих механизмы шаблонов или загружающих текст их страниц из файлов на сервере. В этом варианте атаки злоумышленник модифицирует имя файла, передаваемое в качестве параметра CGI-программы или серверного сценария. В результате злоумышленник может получить исходный код сценариев. Довольно часто к имени запрашиваемого файла добавляются специальные символы – такие как %0 0 – с целью обхода фильтров.



Следующие примеры иллюстрируют обратный путь в каталогах вебсервера:

httр://example/.../.../.../.../.../some/file
httр://example/...%255c...%255c...%255csome/file
httр://example/...%u2216...%u2216some/file

Обратный путь в каталогах веб-приложения:

исходный URL: httр://example/foo.cgi?home=index.htm;
атака: httр://example/foo.cgi?home=foo.cgi.

В приведенном сценарии веб-приложение генерирует страницу, содержащую исходный код сценария foo.cgi, поскольку значение переменной home используется как имя загружаемого файла. Обратите внимание, что в данном случае злоумышленник не использует специальных символов, поскольку целью является файл в той же директории, в которой располагается файл index.htm.



Кроме того, возможен вариант обратного пути в каталогах вебприложения с использованием специальных символов:

исходный URL: http://example/scripts/foo.cgi?page=menu.txt;
атака: http://example/scripts/foo.cgi?page=.../scripts/foo.cgi%00txt.

В приведенном примере веб-приложение загружает исходный текст сценария foo.cgi. Атакующий использует символы .../ для перехода на уровень выше по дереву каталогов и перехода в директорию /scripts. Символ %0 0 используется для обхода проверки расширения файла (приложение позволяет обращаться только к файлам TXT) и чтобы расширение не использовалось при загрузке файла.