Дата публикации: | 15.12.2002 |
Всего просмотров: | 1834 |
Опасность: | |
Наличие исправления: | |
Количество уязвимостей: | 1 |
CVE ID: | Нет данных |
Вектор эксплуатации: | |
Воздействие: | |
CWE ID: | Нет данных |
Наличие эксплоита: | Нет данных |
Уязвимые продукты: | |
Описание: | Многие FTP клиенты, включая те, которые встроены в Web клиенты, могут быть уязвимы к некоторым методам обхода каталога, которые могут эксплуатироваться злонамеренными FTP серверами. Нападение позволяет серверу перезаписывать или создавать произвольные файлы вне рабочего каталога клиента.
Для успешной эксплуатации уязвимости, FTP сервер должен послать имя файла с последовательностью типа "../" или ‘\..\’ в ответ на LIST или другой запрос. Клиент также должен загрузить такие файлы в некоторую директорию. Для проверки клиентов на уязвимость был создан специальный набор тестов. Для этого, FTP сервер ftp4all был изменен таким образом, чтобы возвратить имена файлов различных форм, которые могли бы заставить FTP клиент записать файлы поверх рабочего каталога. Были изменены файлы src/ftps/list.c, serverd.c, и transfer.c, так, чтобы они могли производить изменяемые имена файлов, для любого имени файла, запрашиваемого клиентом. Когда клиент посылает LIST или NLST команду, тестовый сервер возвращает имена фалов, содержащие следующие последовательности:
Примечание: Web клиенты могут быть также уязвимы при обработке "ftp://" URL. Ниже, моделируемый сеанс, который демонстрирует поведение уязвимого клиента. CLIENT> CONNECT server 220 FTP4ALL FTP server ready. Local time is Tue Oct 01, 2002 20:59. Name (server:username): test 331 Password required for test. Password: 230-Welcome, test - I have not seen you since Tue Oct 01, 2002 20:15 ! 230 At the moment, there are 0 guest and 1 registered users logged in. CLIENT> pwd 257 "/" is current directory. CLIENT> ls -l 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 1 -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ...\FAKEME5.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ./../FAKEME2.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ../FAKEME1.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 .\..\FAKEME4.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ..\FAKEME3.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 /tmp/ftptest/FAKEME6.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 C:\temp\FAKEME7.txt -rw-r----- 0 nobody nogroup 54 Oct 01 20:10 FAKEFILE.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 misc.txt 226 Directory listing completed. CLIENT> GET *.txt Opening ASCII data connection for FAKEFILE.txt... Saving as "FAKEFILE.txt" Opening ASCII data connection for ../../FAKEME2.txt... Saving as "../../FAKEME2.txt" Opening ASCII data connection for /tmp/ftptest/FAKEME6.txt... Saving as "/tmp/ftptest/FAKEME6.txt"Если клиент уязвим, то он запишет файлы вне корневой директории. В некоторых случаях, FTP клиент производил ошибку, когда сталкивался с подозрительным именем файла. Таким образом, нельзя было убедиться, был ли клиент уязвим к другим именам файла. В этом случае, во время тестирования сервер посылал одно злонамеренное имя файла одновременно, а клиент запускался несколько раз. Другие возможные варианты последовательностей обхода каталога не проверялись. Web клиенты могут быть уязвимы к подобному типу нападений от злонамеренных HTTP серверов, при автоматической загрузки Web страницы. Однако, это не было проверено. В результане проверки нескольких популярных FTP клиентах, уязвимость была обнаружена в wget, FTP клиентах встроенных в OpenBSD 3.0, Solaris 2.6-7.0 и CGI IRIX. Ftp клиенты в NT SP5, Red Hat, Debian, XP а также в lftp, NcFTP и Lynx не уязвимы к описанному типу нападений. |
Ссылки: | Directory Traversal Vulnerabilities in FTP Clients |