DVWA

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:23, 9 августа 2016.
(перенаправлено с «DVWA (Damn Vulnerable Web Application)»)
Damn Vulnerable Web Application
fraimed
Разработчики: RandomStorm
Операционная система: Windows, OS X, Linux
Платформа: x32, x64
Локализация: Английский
Тип ПО: веб-приложение
Лицензия: Проприетарное ПО
Веб-сайт Official website

DVWA (англ. Damn Vulnerable Web Application) - веб-приложение, основанное на PHP/MySQL, имеющее колоссальное количество уязвимостей.

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

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

Установка DVWA

DVWA можно запустить как в среде Windows, так и в Linux. Так как DVWA является PHP/MySQL веб-приложением, ей необходима соответствующая основа.

XAMPP + DVWA (Windows)

Для среды Windows оптимальным решением в плане удобства является XAMPP.

XAMPP - это серверная сборка для PHP разработки, включающая в себя Apache, MariaDB, PHP, Perl. Также возможно использование MySQL. XAMPP является свободным ПО. Эта сборка доступна для операционных систем Windows, Linux, OS X.

  1. Скачиваем и устанавливаем XAMPP. (https://www.apachefriends.org/ru/index.html)
  2. Скачиваем DVWA zip-архив. (https://github.com/RandomStorm/DVWA)
  3. Разархивируем в public html директорию.
  4. Переходим по адресу http://localhost/dvwa/setup.php, устанавливаем сервер.

Видео с установкой для Windows: https://www.youtube.com/watch?v=GzIj07jt8rM

Linux DVWA

Чтобы установить DVWA на Linux систему, можно также воспользоваться XAMPP, выполняя пункты 1-4, указанные выше.

Другой вариант - установить необходимые сборки вручную. Предварительно обновим систему:

apt-get update
apt-get upgrade

После чего установим необходимые элементы.

apt-get -y install apache2 mysql-server php5 php5-mysql php5-gd

База для веб-приложения готова. Теперь подробнее разберем процесс разархивирования dvwa в public html директорию. Если вы устанавливали apache2 вручную, то это директория находится в /root/var/www/public. Туда и надо разархивировать dvwa.zip

Если же вы устанавливали XAMMP, то public html директория будет: /opt/lampp/htdocs/%USER_NAME% Необходимые данные размещены. Теперь произведем настройку. Дадим нашему серверу разрешения на запись/чтение рекурсивно (то есть и для дерева файлов/папок внутри директории)

chmod -R 755 dvwa

Откроем ./config/config.inc.php в удобном текстовом редакторе.

nano config.inc.php

Видим раздел Database Variables. Параллельно запускаем другой терминал, после чего запускаем сервер apache2 и базу данных MySQL

service apache2 start
service mysql start

Или, если вы устанавливали XAMMP

/opt/lampp/lampp start

Запускаем консоль mysql

mysql -u root -p

Вводим пароль, нажимаем ENTER. Замечание: после -u необходимо ввести пользователя базы данных, указанного в открытом config.inc.php. Соответственно и пароль тот же. Далее необходимо создать базу данных для нашего сервера.

create database dvwa;

Имя базы данных - совпадает с указанным в config.inc.php Проверить, создалась ли БД, можно командой

show databases;

Выходим

quit

Открываем браузер, переходим по http://localhost/dvwa/login.php
DVWA1.png
Вводим стандартный
login: admin
password: password
Переходим на localhost/dvwa/setup.php
DVWA4.png
Нажимаем Create/Reset Database
Переходим на главную страницу
DVWA2.png

Обзор DVWA

В разделе Setup/Reset DB теперь можно переустановить сервер, чтобы сбросить все настройки. Также, там можно наблюдать состояние различных служб, которые нужны для работы определенного упражнения. В разделе Instructions можно найти дополнительную техническую информацию.
DVWA3.png

Далее идут непосредственно упражнения, распределенные по категориям.
Brute Force
DVWA5.png
Command Injection
DVWA6.png
CSRF
Screenshot from 2016-06-04 12-10-34.png
File Inclusion
DVWA7.png
File Upload
DVWA8.png
Insecure CAPTCHA
DVWA9.png
SQL Injection
DVWA10.png
SQL Injection (Blind)
DVWA11.png
Reflected XSS
DVWA12.png
Stored XSS
DVWA13.png

На странице каждого упражнения есть подсказки (View Help), а также возможность посмотреть server-side php код (View Source), для большего понимания работы приложения, в случае неудачных попыток взлома.

Далее представлена страница DVWA Security, на которой имеется возможность выбрать уровень сложности (к каждому уровню сложности представляется описание). Также, чтобы усложнить себе задачу, можно включить имеющийся Web Application Firewall и IDS, который называется PHPIDS.
DVWA14.png

Страница Phpinfo является результатом функции phpinfo() - предоставляет технические детали сервера.
DVWA15.png

На странице About можно найти дополнительный материал.
DVWA16.png

Дополнительные конфигурации

Разрешения директорий:

  1. ./hackable/uploads - нужно установить на запись (для работы File Upload)
  2. ./external/phpids/0.6/lib/IDS/tmp/phpids_log.txt - нужно установить на запись (для функционирования PHPIDS)'

PHP конфигурации:

  1. llow_url_include = on Необходим Remote File Inclusions
  2. allow_url_fopen = on Необходим для Remote File Inclusions
  3. safe_mode = off Необходим для проведения SQLi
  4. magic_quotes_gpc = off Необходим для проведения SQLi
  5. display_errors = off Скрывает PHP Error сообщения (что повышает уровень сложности)
  6. Файл: config/config.inc.php:
    $_DVWA[ 'recaptcha_public_key' ] & $_DVWA[ 'recaptcha_private_key' ] - эти значения необходимо сгенерировать, используя: https://www.google.com/recaptcha/admin/create

Примечания

Ссылки