Взлом веб-приложений, часть 10: обход каталогов или путей

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие хакеры!

В этой серии статей о взломе веб-приложений мы рассмотрим различные способы взлома веб-сайтов и веб-приложений. В данном руководстве мы рассмотрим обход каталогов и путей. При таком типе атак хакер может получить доступ к файлам на базовом сервере, которые могут быть конфиденциальными или критически важными.

Как вы знаете, веб-сервер Apache (самый популярный веб-сервер в мире) размещает свои сайты в каталоге /var/www/html (на серверах Windows это c:inetpubwwwroot). Это означает, что при просмотре веб-страниц на сайте все эти страницы являются подстраницами или подкаталогами этого корневого каталога.

Что, если бы, пока мы подключены к веб-серверу, мы могли бы выходить из этого каталога в другие каталоги на сервере и отображать эти файлы в браузере? Если да, то мы могли бы найти важную информацию на сервере в каталогах /etc, /proc или даже /var. Таким образом, мы могли бы найти ключевую информацию на сервере, такую как данные о ключевых пользователях, конфиденциальную информацию, запущенные процессы, или даже получить доступ к файлу конфигурации Apache и изменить его.

В этом руководстве мы попытаемся выполнить обход каталогов на намеренно уязвимом веб-сайте DVWA, встроенном в Metasploitable.

Шаг №1: Войдите в систему и настройте безопасность

Первый шаг — войти в DVWA. Учётные данные — «admin» и «password» (кстати, Damn Vulnerable!).

6a4a49_3e0a62a1788e42d29fdc69f8d710f990~mv2.png


Затем установите уровень безопасности на «низкий».

6a4a49_9610dbb3634142c49b9916821d2ece5c~mv2.png


Шаг №2 : Проверьте URL

Если бы вы запустили сканер уязвимостей, такой как OWASP-ZAP, против DVWA, вы, скорее всего, обнаружили бы несколько каталогов, уязвимых для обхода каталогов (здесь это называется «просмотром каталогов»).

6a4a49_031dc30ee70b4b5f8c6a18021e803f4b~mv2.png


Эти каталоги часто заканчиваются URL-адресом, указывающим на внутренний файл, например index.html, аналогичный приведенному ниже.

/script.php?page=index.html

Здесь PHP-скрипт указывает на файл, например, index.html. Хакер или пентестер может воспользоваться этой уязвимостью в PHP-коде, чтобы перенаправить скрипт в другой файл на сервере и отобразить его.

На веб-сайте DVWA мы можем найти несколько URL-адресов, указывающих на внутренние файлы, такие как:

/dvwa/vulnerabilities/fi/?page=

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

Помните, что сервер Apache обслуживает страницы из каталога /var/www/html . Это означает, что просматриваемые нами страницы находятся в следующем каталоге на сервере:

/var/www/html/dvwa/vulnerabilities/fi

Другими словами, страницы, отображаемые веб-сервером в браузере, находятся на 6 уровней выше корневого каталога /. Это означает, что если мы сможем заставить PHP-скрипт подняться на шесть уровней, мы окажемся в каталоге /. Можно использовать ../ для перехода на один уровень каталога вверх или использовать комбинацию из шести элементов для перехода на 6 уровней вверх.

Давайте попробуем использовать следующий URL-адрес, который переместится на 6 уровней вверх от указанного местоположения файла в каталог /, а затем предоставит нам файл /etc/passwd.

192.168.1.112/dvwa/vulnerabilities/fi/?page=../../../../../../etc/passwd

6a4a49_bf6ec3a5677d4c8d934d692724ecd72d~mv2.png


Как видите, нам удалось отобразить все учетные записи пользователей на сервере Linux, лежащем в основе веб-сервера Apache!

Конечно, в файле /etc/passwd хранятся учётные записи пользователей, но не пароли. Пароли хранятся в виде хешей в /etc/shadow . Давайте попробуем получить доступ к этому файлу и посмотрим, сможем ли мы получить доступ к хешам паролей.

6a4a49_f88b2b9bc89146eb8308bb709f52ddb9~mv2.png


Как видите, этот метод НЕ сработает для доступа к хешам паролей, поскольку они доступны только пользователю root, а мы вошли на сервер как обычный пользователь без прав администратора. В результате мы получаем сообщение об отказе в доступе .

Шаг №3: Доступ к каталогу / proc

Кроме того, мы можем использовать тот же метод для доступа к ключевой информации из каталога /proc. Помните, что у каждого процесса есть файл в каталоге proc. Например, мы можем определить версию операционной системы по файлу /proc/version . Мы можем получить к нему доступ, создав URL, например:

http://192.168.1.112/dvwa/vulnerabilities/fi/?page=../../../../../../proc/version

6a4a49_55eb31dd9f76473ebee8f91b817584db~mv2.png


Как видно на снимке экрана выше, этот переход в каталог /proc отображает версию базового сервера Linux (Linux Server 2.6.24). Эта информация может быть критически важна для определения способа компрометации и дальнейшей атаки на этот сервер (эксплойты обычно привязаны к версии ПО).

Открыв файл /proc/net/tcp на сервере, мы можем увидеть все TCP-соединения, установленные сервером. Аналогичные результаты для UDP-соединений можно получить, открыв файл /proc/net/udp .

6a4a49_cc8e6ef522a6463cbdcbe6e528661732~mv2.png


Наконец, попробуем получить доступ к файлу /proc/sched_deb . Этот файл отвечает за планировщик процессов в системах Linux. Открыв его, мы сможем получить снимок запущенных в системе процессов, включая их PID.

6a4a49_06707a2495ce4b038e7cfc965bb6cabb~mv2.png


Заключение

Веб-серверы, уязвимые для обхода каталогов или просмотра каталогов, могут быть использованы для предоставления хакеру конфиденциальных или критически важных данных, включая учетную запись пользователя, информацию о процессе или даже конфиденциальный файл, находящийся на сервере, такой как схема сети или оценка уязвимости.
 
Назад
Сверху Снизу