Вводная

Цель работы

Научиться основным способам тестирования веб приложений

Введение

В ходе данной лабораторной работы мы будем искать уязвимости в специально предназначенном для этого веб приложении из под названием DVWA. Damn Vulnerable Web Application - это веб приложение на PHP/MySQL, которое "чертовски уязвимо". Его главное цель - помочь профессионалам по безопасности протестировать их навыки и инструменты в легальном окружении, помочь веб разработчикам лучше понять процесс безопасности веб приложений и помочь и студентам и учителям в изучении безопасности веб приложений в контролируемом окружении аудитории.

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

ПРЕДУПРЕЖДЕНИЕ!

Damn Vulnerable Web Application чертовски уязвимо! Не загружайте его в публичную html папку вашего хостинг провайдера или на любой сервер, имеющий выход в Интернет, поскольку они будут скомпрометированы. Рекомендуется использовать виртуальную машину (такую как VirtualBox или VMware), которые установлены в сетевой режим NAT. Внутри гостевой машины вы можете загружать и установить веб сервер и базы данных.

Цель

Цель работы - найти максимальное количество уязвимостей различных типов. Вот некоторые из уязвимостей веб приложений, который содержит DVWA:
  • Брутфорс: Брутфорс HTTP формы страницы входа - используется для тестирования инструментов по атаке на пароль методом грубой силы и показывает небезопасность слабых паролей.
  • Исполнение (внедрение) команд: Выполнение команд уровня операционной системы.
  • Межсайтовая подделка запроса (CSRF): Позволяет «атакующему» изменить пароль администратора приложений.
  • Внедрение (инклуд) файлов: Позволяет «атакующему» присоединить удалённые/локальные файлы в веб приложение.
  • SQL внедрение: Позволяет «атакующему» внедрить SQL выражения в HTTP из поля ввода, DVWA включает слепое и основанное на ошибке SQL внедрение.
  • Небезопасная выгрузка файлов: Позволяет «атакующему» выгрузить вредоносные файлы на веб сервер.
  • Межсайтовый скриптинг (XSS): «Атакующий» может внедрить свои скрипты в веб приложение/базу данных. DVWA включает отражённую и хранимую XSS.
  • Пасхальные яйца: раскрытие полных путей, обход аутентификации и некоторые другие.

Уровни везопасности

DVWA имеет три уровня безопасности, они меняют уровень безопасности каждого веб приложения в DVWA.
  • Невозможный – этот уровень должен быть безопасным от всех уязвимостей. Он используется для сравнения уязвимого исходного кода с безопасным исходным кодом. До DVWA v1.9 этот уровень был известен как «высокий».
  • Высокий - Это расширение среднего уровня сложности, со смесью более сложных или альтернативных плохих практик в попытке обезопасить код. Уязвимости не позволяют такой простор эксплуатации как на других уровнях.
  • Средний - Этот уровень безопасности предназначен главным образом для того, чтобы дать пользователю пример плохих практик безопасности, где разработчик попытался сделать приложение безопасным, но потерпел неудачу. Он также выступает вызовом для пользователей, чтобы они усовершенствовали свои техники эксплуатации.
  • Низкий - Этот уровень безопасности совершенно уязвим и совсем не имеет защиты. Его предназначение быть передовым примером среди уязвимых веб приложений, примером плохих практик программирования и служить платформой обучения базовым техникам эксплуатации.

Каждая уязвимая страница в DVWA имеет кнопку 'view source' (показать исходный код), эта кнопка используется для просмотра и сравнения исходного кода каждой уязвимости по сравнению с её безопасным уровнем. Это позволяет пользователю с лёгкостью получить доступ к исходному коду для сравнения безопасных и небезопасных практик написания кода.

Также в DVWA вы можете включить или отключить PHP-IDS. PHP-IDS - это популярная PHP система обнаружения вторжений (IDS), которые также известны как файерволы веб приложений (Web Application Firewall (WAF)). PHP-IDS работает посредством фильтрации по чёрному списку потенциально уязвимого кода любого пользовательского ввода. PHP-IDS используется в DVWA для служения живым примером, как WAF может помочь улучшить безопасность в веб приложениях, а в Damn Vulnerable Web Application (DVWA) - случае, как WAF можно обойти. PHP-IDS может быть включена или отключена одним кликом по соответствующей кнопке.

Инструменты

Для тестирования должен использоваться дистрибутив Kali Linux релиза не ниже 2016.2. Можно пользоваться любыми иструментами дистрибутва, включая, но не ограничиваясь nikto, SQLMap, Hydra.

Задание

  • Установить Kali Linux (в качестве виртуальной машины) или воспользоваться дистрибутивом в классе. Полное описание установки можно прочитать здесь. При необходимости можно взять образ у других студентов группы.
  • Установить DVWA из форка https://github.com/jehy-security/DVWA согласно инструкциям из репозитория, поставить "средний" уровнь безопасности. При неоходимости можно воспользоваться подробной инструкцией по установке. Так же можно взять образ с утановленным приложением у других студентов группы;
  • Реализовать успешную эксплуатацию каждой из 10 уявимостей (по числу пунктов меню приложения). Некоторые задачи можно выполнить несколькими методами, но достаточно описать хотя бы один.
  • Написать отчёт в свободной форме, в котором показать успешное решение задач из предыдущего пункта.

Вопросы

  1. Перечислите основные уязвимости, касающиеся веб приложений.
  2. Можно ли ставить DVWA на свой публичный веб сервер?
  3. Чем отличается тестирование DVWA от тестирования публичного сервера?
  4. Что представляет собой дистрибутив Kali Linux?
  5. Перечислите и опишите вкратце несколько компонентов, входящих в состав Kali Linux;