Иван Андреевич Трещев "Анализ защищенности распределенных информационных систем. DVWA. Для студентов технических специальностей"

None

date_range Год издания :

foundation Издательство :Издательские решения

person Автор :

workspaces ISBN :9785006209480

child_care Возрастное ограничение : 999

update Дата обновления : 17.01.2024

3 Command Injection Hard

Command Injection (внедрение команды) – уязвимость, представленная в пункте A1 OWASP Top 10 (внедрение). Она позволяет выполнять на стороне сервера произвольный код.

В DVWA на странице Command Injection представлена форма, изображённая на рисунке 3.1. В неё пользователь может написать адрес узла, который будет являться аргументом команды ping.

Рисунок 3.1 – Форма с полем ввода адреса

При вводе корректного адреса выводится результат работы утилиты ping.

При попытке использования в качестве разделителей команд различные символы выясняется, что использование прямой черты (|) без пробела помогает обойти механизм фильтрации пользовательского ввода.

На рисунке 3.2 изображено подтверждение наличия уязвимости. На стороне сервера будет выполнена команда «ping localhost; echo Hello».

Рисунок 3.2 – Подтверждение наличия уязвимости

Для уменьшения времени получения вывода можно не писать аргумент команде ping, то есть, вводить первым символом прямую черту.

По заданию необходимо получить имя текущего пользователя и hostname контейнера (docker-контейнера). Команды, выводящие указанные данные, изображены на рисунках 3.3 и 3.4. На стороне сервера при этом выполнятся команды «ping |id» и «ping |hostname».

Рисунок 3.3 – Имя пользователя

Рисунок 3.4 – hostname

4 File Inclusion Low

File Inclusion – уязвимость, заключающаяся в возможности использования и выполнения файлов на стороне сервера путём формирования определённого запроса к серверу.

Задание состоит в том, что необходимо прочитать содержимое файла ../hackable/flags/fi.php.

В DVWA на странице File Inclusion представлены три файла. При открытии любого файла его название отображается в строке запроса. Это означает, что GET-параметр page определяет, какой файл необходимо открыть, что изображено на рисунке 4.1.

Рисунок 4.1 – Пример открытия файла

Для демонстрации наличия уязвимости будет предпринята попытка прочитать файл /etc/passwd. На рисунке 4.2 изображено его содержимое.

Рисунок 4.2 – Содержимое файла /etc/passwd

Для того, чтобы просмотреть содержимое файла php, а не исполнить его, можно использовать механизм фильтров php. Например, можно использовать вывод файла в base64, что продемонстрировано на рисунке 4.3.

Рисунок 4.3 – Использование фильтров php

На рисунке 4.4 изображено декодированное содержимое файла.

Рисунок 4.4 – Содержимое файла ../hackable/flags/fi.php

5 File Inclusion Medium

File Inclusion – уязвимость, заключающаяся в возможности использования и выполнения файлов на стороне сервера путём формирования определённого запроса к серверу.

Задание состоит в том, что необходимо прочитать содержимое файла ../hackable/flags/fi.php.

В DVWA на странице File Inclusion представлены три файла. При открытии любого файла его название отображается в строке запроса. Это означает, что GET-параметр page определяет, какой файл необходимо открыть, что изображено на рисунке 5.1.

Рисунок 5.1 – Пример открытия файла

Опытным путём установлено, что последовательность символов».. /” фильтруется. Предположительно, заменяется на пустую строку, так как при параметре page равном “../../../file3.php» открывается файл file3.php, изображённый на рисунке 5.1.

Существует метод обхода подобной фильтрации. В нём используется тот факт, что операция замены последовательности символов во входных данных выполняется только один раз. Это позволяет использовать конструкции вида «….//». Эта последовательность будет преобразована в».. /».

Для демонстрации наличия уязвимости будет предпринята попытка прочитать файл /etc/passwd с помощью параметра page равному «…//…//…//…//…//etc/passwd». На рисунке 5.2 изображено его содержимое.

Рисунок 5.2 – Содержимое файла /etc/passwd

Для того, чтобы просмотреть содержимое файла php, а не исполнить его, можно использовать механизм фильтров php. Например, можно использовать вывод файла в base64, что продемонстрировано на рисунке 5.3.

Рисунок 5.3 – Использование фильтров php

На рисунке 5.4 изображено декодированное содержимое файла.

Рисунок 5.4 – Содержимое файла ../hackable/flags/fi.php

6 File Inclusion High

File Inclusion – уязвимость, заключающаяся в возможности использования и выполнения файлов на стороне сервера путём формирования определённого запроса к серверу.

Задание состоит в том, что необходимо прочитать содержимое файла ../hackable/flags/fi.php.

В DVWA на странице File Inclusion представлены три файла. При открытии любого файла его название отображается в строке запроса. Это означает, что GET-параметр page определяет, какой файл необходимо открыть, что изображено на рисунке 6.1.

Рисунок 6.1 – Пример открытия файла

Опытным путём выяснено, что механизм фильтрации пропускает только запросы с файлом, начинающимся с «file». Для обхода такого типа фильтрации используется URI-схема file.

Для демонстрации наличия уязвимости будет предпринята попытка прочитать файл /etc/passwd. На рисунке 6.2 изображено его содержимое.

Рисунок 6.2 – Содержимое файла /etc/passwd

Сервер не позволяет обращаться через File URI-scheme, используя относительные пути. Но можно предположить, что корневая директория веб-приложения – /var/www/html/, так как популярные веб-серверы (Apache, Nginx) по умолчанию используют её. На рисунке 6.3 изображён вывод файла hackable/flags/fi.php. На данном уровне сложности скрытую строку посмотреть не представляется возможным, так как использование File URI-scheme не позволяет использовать фильтры языка программирования PHP внутри пути.

Рисунок 6.3 – Файл hackable/flags/fi.php

Похожие книги


Все книги на сайте предоставены для ознакомления и защищены авторским правом