README.ru.md
Damn Vulnerable Web Application (DVWA) — это веб-приложение на PHP/MariaDB, которое является чертовски уязвимым. Его основная цель — помочь специалистам по безопасности проверить свои навыки и инструменты в легальной среде, помочь веб-разработчикам лучше понять процессы обеспечения безопасности веб-приложений и помочь как студентам, так и преподавателям изучить вопросы безопасности веб-приложений в контролируемой среде класса.
Цель DVWA — отработать некоторые из наиболее распространенных уязвимостей веб-приложений с различными уровнями сложности с помощью простого и понятного интерфейса. Обратите внимание, что в этом программном обеспечении есть как задокументированные, так и незадокументированные уязвимости. Это сделано намеренно. Мы призываем вас попробовать обнаружить как можно больше проблем.
Damn Vulnerable Web Application действительно очень уязвимо! Не загружайте его в общедоступную папку html вашего хостинг-провайдера или на любой сервер, подключенный к Интернету, так как они будут скомпрометированы. Рекомендуется использовать виртуальную машину (такую как VirtualBox или VMware), настроенную в режиме NAT. Внутри гостевой машины вы можете загрузить и установить XAMPP для веб-сервера и базы данных.
Мы не несем ответственности за то, как кто-либо использует это приложение (DVWA). Мы четко указали цели приложения, и оно не должно использоваться в злонамеренных целях. Мы предоставили предупреждения и приняли меры, чтобы пользователи не устанавливали DVWA на действующие веб-серверы. Если ваш веб-сервер будет скомпрометирован в результате установки DVWA, это не будет нашей ответственностью, а ответственностью лица/лиц, которые загрузили и установили его.
Этот файл является частью Damn Vulnerable Web Application (DVWA).
Damn Vulnerable Web Application (DVWA) является бесплатным программным обеспечением: вы можете распространять и/или изменять его в соответствии с условиями общественной лицензии GNU, опубликованной Free Software Foundation, либо версии 3 лицензии, либо (по вашему усмотрению) любой более поздней версии.
Damn Vulnerable Web Application (DVWA) распространяется в надежде, что оно будет полезно, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии ПРИГОДНОСТИ ДЛЯ ПРОДАЖИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. См. GNU General Public License.
Вы должны были получить копию общественной лицензии GNU вместе с Damn Vulnerable Web Application (DVWA). Если нет, см. https://www.gnu.org/licenses/.
Этот файл доступен на нескольких языках:
Если вы хотите внести свой вклад в перевод, отправьте PR. Обратите внимание, что это не означает, что нужно просто перевести текст через Google Translate и отправить его, такие переводы будут отклонены. Отправьте свой перевод, добавив новый файл «README.xx.md», где xx — двухбуквенный код желаемого языка (в соответствии с ISO 639-1).
Хотя существует несколько версий DVWA, единственной поддерживаемой версией является последняя версия из официального репозитория GitHub. Вы можете клонировать ее из репозитория:
git clone https://github.com/digininja/DVWA.git
Или скачать ZIP-архив с файлами.
Обратите внимание, что это не официальный скрипт DVWA, он был написан IamCarron. На создание скрипта было затрачено много времени, и на момент создания он не выполнял никаких вредоносных действий, однако на всякий случай рекомендуется проверить скрипт, прежде чем слепо запускать его в своей системе. Пожалуйста, сообщайте о любых ошибках IamCarron, а не здесь.
Автоматический скрипт настройки DVWA для машин на базе Debian, включая Kali, Ubuntu, Kubuntu, Linux Mint, Zorin OS...
Примечание: этот скрипт требует прав root и предназначен для систем на базе Debian. Убедитесь, что вы запускаете его как пользователь root.
Это позволит загрузить скрипт установки, написанный @IamCarron, и запустить его автоматически. Мы бы не включили его сюда, если бы не доверяли автору и скрипту в том виде, в котором он был на момент проверки, но всегда есть вероятность, что кто-то может злоупотребить доверием, поэтому, если вы не чувствуете себя в безопасности, запуская чужой код без его предварительной проверки, следуйте инструкциям по ручной установке и проверьте его после загрузки.
sudo bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh)"
Загрузите скрипт:
wget https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh
Сделайте скрипт исполняемым:
chmod +x Install-DVWA.sh
Запустите скрипт от имени root:
sudo ./Install-DVWA.sh
Самый простой способ установить DVWA — это загрузить и установить XAMPP, если у вас еще нет настроенного веб-сервера.
XAMPP — это очень простой в установке дистрибутив Apache для Linux, Solaris, Windows и Mac OS X. Пакет включает веб-сервер Apache, MySQL, PHP, Perl, FTP-сервер и phpMyAdmin.
Это видео проведет вас через процесс установки для Windows, но он должен быть аналогичным для других ОС.
Благодаря hoang-himself и JGillam, каждый коммит в ветку master приводит к созданию образа Docker, который можно загрузить из реестра контейнеров GitHub.
Для получения дополнительной информации о том, что вы получаете, вы можете просмотреть готовые образы Docker.
Необходимые условия: Docker и Docker Compose.
Мы предоставляем поддержку для последней версии Docker, как показано выше. Если вы используете Linux и пакет Docker, поставляемый с вашим менеджером пакетов, он, вероятно, тоже будет работать, но поддержка будет предоставляться только по мере возможности.
Для обновления Docker с версии из пакетного менеджера до версии из исходного репозитория необходимо удалить старые версии, как указано в руководствах для Ubuntu, Fedora и других. Ваши данные Docker (контейнеры, образы, тома и т. д.) не должны быть затронуты, но в случае возникновения проблем обязательно сообщите об этом Docker и воспользуйтесь поисковыми системами.
Затем, чтобы начать:
Запустите docker version и docker compose version, чтобы проверить, правильно ли установлены Docker и Docker Compose. Вы должны увидеть их версии в выводе.
Например:
>>> docker version
Клиент:
[...]
Version: 23.0.5
[...]
Сервер: Docker Desktop 4.19.0 (106363)
Движок:
[...]
Version: 23.0.5
[...]
>>> docker compose version
Docker Compose version v2.17.3
Если вы ничего не видите или получаете ошибку «команда не найдена», выполните предварительные требования для настройки Docker и Docker Compose.
Клонируйте или загрузите этот репозиторий и извлеките его (см. Загрузка).
Откройте терминал по вашему выбору и измените его рабочий каталог на эту папку (DVWA).
Запустите docker compose up -d.
DVWA теперь доступен по адресу http://localhost:4280.
Обратите внимание, что для запуска DVWA в контейнерах веб-сервер прослушивает порт 4280 вместо обычного порта 80. Для получения дополнительной информации об этом решении см. Я хочу запустить DVWA на другом порту.
Если вы внесли локальные изменения и хотите скомпилировать проект локально, перейдите в compose.yml и измените pull_policy: always на pull_policy: build.
Запуск docker compose up -d должен запустить Docker для сборки образа из локальной системы, независимо от того, что доступно в реестре.
См. также: pull_policy.
Если вы вносите локальные изменения и не хотите создавать проект при каждом изменении:
compose.yml и удалите комментарий:
# volumes:
# - ./:/var/www/html
cp config/config.inc.php.dist config/config.inc.php, чтобы скопировать файл конфигурации по умолчанию.docker compose up -d, и изменения в локальных файлах отразятся в контейнере.В идеале вы должны использовать последнюю стабильную версию PHP, так как именно на этой версии будет разработано и протестировано данное приложение.
Поддержка не будет предоставляться тем, кто пытается использовать PHP 5.x.
В версиях ниже 7.3 есть известные проблемы, которые могут вызвать сбои в работе. Большая часть приложения будет работать, но некоторые функции могут не работать. Если у вас нет веских причин для использования такой старой версии, поддержка не будет предоставляться.
Если вы используете дистрибутив Linux на основе Debian, вам необходимо установить следующие пакеты (или их эквиваленты):
Я бы порекомендовал перед этим выполнить обновление, чтобы убедиться, что у вас установлены последние версии всех компонентов.
apt update
apt install -y apache2 mariadb-server mariadb-client php php-mysqli php-gd libapache2-mod-php
Сайт будет работать с MySQL вместо MariaDB, но мы настоятельно рекомендуем MariaDB, так как она работает сразу после установки, в то время как для правильной работы MySQL необходимо внести изменения.
Если вы хотите использовать API lab, у вас должен быть включен модуль Apache mod_rewrite. Для этого в Linux выполните:
a2enmod rewrite
Затем перезапустите Apache с помощью команды:
apachectl restart
Если вы хотите использовать модуль API, вам необходимо установить набор файлов поставщика с помощью Composer.
Сначала убедитесь, что у вас установлен Composer. Похоже, есть проблемы с обратной совместимостью, поэтому я всегда беру последнюю версию отсюда:
https://getcomposer.org/doc/00-intro.md
Следуйте инструкциям на сайте, чтобы установить его.
Теперь перейдите в каталог vulnerabilities/api и запустите:
composer.phar install
Если вы не установили Composer в системный путь, убедитесь, что указали его полное расположение.
DVWA поставляется с фиктивной копией своего файла конфигурации, которую вам необходимо скопировать в нужное место, а затем внести соответствующие изменения. В Linux, предполагая, что вы находитесь в каталоге DVWA, это можно сделать следующим образом:
cp config/config.inc.php.dist config/config.inc.php
В Windows это может быть немного сложнее, если вы скрываете расширения файлов. Если вы не уверены в этом, в этой статье блога объясняется более подробно:
Как заставить Windows показывать расширения файлов
Вместо изменения файла конфигурации вы также можете установить большинство настроек с помощью переменных среды. При развертывании в Docker или Kubernetes это позволяет изменять конфигурацию без создания нового образа Docker. Переменные находятся в файле config/config.inc.php.dist.
Если вы хотите установить уровень безопасности по умолчанию на «низкий», просто добавьте следующую строку в файл compose.yml:
environment:
- DB_SERVER=db
- DEFAULT_SECURITY_LEVEL=low
Чтобы настроить базу данных, просто нажмите кнопку «Setup DVWA» (Настройка DVWA) в главном меню, а затем нажмите кнопку «Create / Reset Database» (Создать / Сбросить базу данных). Это создаст / сбросит базу данных с некоторыми данными.
Если при попытке создать базу данных вы получили сообщение об ошибке, убедитесь, что ваши учетные данные для базы данных в файле ./config/config.inc.php верны. Это отличается от config.inc.php.dist, который является примером файла.
По умолчанию переменные установлены следующим образом:
$_DVWA[ 'db_server'] = '127.0.0.1';
$_DVWA[ 'db_port'] = '3306';
$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = 'p@ssw0rd';
$_DVWA[ 'db_database' ] = 'dvwa';
Обратите внимание: если вы используете MariaDB вместо MySQL (MariaDB является стандартной базой данных в Kali), то вы не можете использовать пользователя root базы данных, вам необходимо создать нового пользователя базы данных. Для этого подключитесь к базе данных как пользователь root, затем выполните следующие команды:
MariaDB [(none)]> create database dvwa;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> create user dvwa@localhost identified by 'p@ssw0rd';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> grant all on dvwa.* to dvwa@localhost;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Некоторые инструменты не работают с аутентификацией, поэтому их нельзя использовать с DVWA. Чтобы обойти эту проблему, существует опция конфигурации, позволяющая отключить проверку аутентификации. Для этого просто установите следующее в файле конфигурации:
$_DVWA[ 'disable_authentication' ] = true;
Вам также необходимо будет установить уровень безопасности, соответствующий тестированию, которое вы хотите провести:
$_DVWA[ 'default_security_level' ] = 'low';
В этом состоянии вы можете получить доступ ко всем функциям без необходимости входа в систему и установки каких-либо файлов cookie.
./hackable/uploads/ - Должна быть доступна для записи веб-службой (для загрузки файлов).В системах Linux, вероятно, находится в /etc/php/x.x/fpm/php.ini или /etc/php/x.x/apache2/php.ini.
Чтобы разрешить удаленное включение файлов (RFI):
allow_url_include = on [allow_url_include]allow_url_fopen = on [allow_url_fopen]Чтобы PHP отображал все сообщения об ошибках:
display_errors = on [display_errors]display_startup_errors = on [display_startup_errors]Обязательно перезапустите службу php или Apache после внесения изменений.
Это требуется только для лабораторной работы «Небезопасная CAPTCHA». Если вы не занимаетесь этой лабораторной работой, можете пропустить этот раздел.
Сгенерируйте пару ключей API на сайте https://www.google.com/recaptcha/admin/create.
Затем вставьте их в следующие разделы файла ./config/config.inc.php:
$_DVWA[ 'recaptcha_public_key' ]$_DVWA[ 'recaptcha_private_key' ]Имя пользователя по умолчанию = admin
Пароль по умолчанию = password
...легко поддаются брутфорсу ;)
URL для входа: http://127.0.0.1/login.php
Примечание: этот адрес будет другим, если вы установили DVWA в другой каталог.
Предполагается, что вы используете дистрибутив на базе Debian, такой как Debian, Ubuntu и Kali. Для других дистрибутивов следуйте инструкциям, но обновите команду там, где это необходимо.
Если вы предпочитаете смотреть видео, а не читать текст, самые распространенные проблемы описаны в видео Устранение проблем с настройкой DVWA.
Если вы используете Docker Desktop, доступ к журналам можно получить из графического приложения. Некоторые мелкие детали могут измениться в более новых версиях, но способ доступа должен остаться прежним.
Доступ к журналам также можно получить из терминала.
Откройте терминал и измените его рабочий каталог на DVWA
Отобразите объединенные журналы
docker compose logs
Если вы хотите экспортировать журналы в файл, например dvwa.log
docker compose logs > dvwa.log
Мы не используем порт 80 по умолчанию по нескольким причинам:
net.ipv4.ip_unprivileged_port_start), но вам придется самостоятельно изучить этот вопрос.Вы можете открыть DVWA на другом порту, изменив привязку порта в файле compose.yml.
Например, вы можете изменить
ports:
- 127.0.0.1:4280:80
на
ports:
- 127.0.0.1:8806:80
DVWA теперь доступен по адресу http://localhost:8806.
В случаях, когда вы хотите, чтобы DVWA был доступен не только с вашего собственного устройства, но
и в локальной сети (например, потому что вы настраиваете тестовую машину для семинара), вы
вы можете удалить 127.0.0.1: из сопоставления портов (или заменить его IP-адресом вашей локальной сети). Таким образом, он
будет прослушивать все доступные устройства. Безопасным по умолчанию всегда должно быть прослушивание только вашего
локальное устройство обратной связи. В конце концов, это чертовски уязвимое веб-приложение, работающее на вашем компьютере.
Включенный файл compose.yml автоматически запускает DVWA и его базу данных при запуске Docker.
Чтобы отключить эту функцию, вы можете удалить или закомментировать строки restart: unless-stopped в файле compose.yml.
Если вы хотите временно отключить это поведение, вы можете запустить docker compose stop или использовать Docker Desktop, найти dvwa и нажать «Stop».
Кроме того, вы можете удалить контейнеры или запустить docker compose down.
В системах Linux Apache по умолчанию генерирует два файла журнала, access.log и error.log, а в системах на базе Debian они обычно находятся в /var/log/apache2/.
При отправке отчетов об ошибках, проблемах и т. п. пожалуйста, включайте в них как минимум последние пять строк из каждого из этих файлов. В системах на базе Debian их можно получить следующим образом:
tail -n 5 /var/log/apache2/access.log /var/log/apache2/error.log
Если у вас возникла эта проблема, вам необходимо понять расположение файлов. По умолчанию корневой каталог Apache (место, где он начинает искать веб-контент) находится в /var/www/html. Если вы поместите файл hello.txt в этот каталог, для доступа к нему вам нужно будет перейти по адресу http://localhost/hello.txt.
Если вы создали каталог и поместили файл в него — /var/www/html/mydir/hello.txt — вам нужно будет перейти по адресу http://localhost/mydir/hello.txt.
Linux по умолчанию чувствителен к регистру, поэтому в приведенном выше примере, если вы попытаетесь перейти по любому из этих адресов, вы получите сообщение 404 Not Found:
http://localhost/MyDir/hello.txthttp://localhost/mydir/Hello.txthttp://localhost/MYDIR/hello.txtКак это влияет на DVWA? Большинство людей используют git для клонирования DVWA в /var/www/html, в результате чего они получают каталог /var/www/html/DVWA/ со всеми файлами DVWA внутри. Затем они переходят по адресу http://localhost/ и получают либо сообщение 404, либо стандартную страницу приветствия Apache. Поскольку файлы находятся в DVWA, необходимо перейти по адресу http://localhost/DVWA.
Другой распространенной ошибкой является переход по адресу http://localhost/dvwa, который даст ошибку 404, поскольку dvwa не является DVWA с точки зрения сопоставления каталогов Linux.
Поэтому после настройки, если вы пытаетесь посетить сайт и получаете ошибку 404, подумайте, куда вы установили файлы, где они находятся по отношению к корню документов и каков регистр используемого вами каталога.
Обычно это одна проблема конфигурации, скрывающая другую проблему. По умолчанию PHP не отображает ошибки, поэтому, если вы забыли включить отображение ошибок во время процесса настройки, любые другие проблемы, такие как сбой подключения к базе данных, остановят загрузку приложения, но сообщение о том, что не так, будет скрыто.
Чтобы исправить это, убедитесь, что вы установили display_errors и display_startup_errors, как описано в Конфигурация PHP, а затем перезапустите Apache.
Если при запуске скрипта установки вы видите следующее сообщение, это означает, что имя пользователя или пароль в файле конфигурации не совпадают с теми, которые настроены в базе данных. Видео-справка
Ошибка базы данных #1045: Доступ запрещен для пользователя 'notdvwa'@'localhost' (с использованием пароля: ДА).
Ошибка сообщает вам, что вы используете имя пользователя notdvwa.
Следующая ошибка означает, что вы указали в файле конфигурации неверную базу данных. Видео-справка
SQL: Доступ к базе данных 'notdvwa' для пользователя 'dvwa'@'localhost' запрещен
Это означает, что вы используете пользователя dvwa и пытаетесь подключиться к базе данных notdvwa.
Первое, что нужно сделать, — это дважды проверить, что то, что вы, по вашему мнению, ввели в файл конфигурации, действительно там есть.
Если все соответствует вашим ожиданиям, следующим шагом будет проверка возможности входа в систему с помощью этого пользователя в командной строке. Предполагая, что у вас есть пользователь базы данных dvwa и пароль p@ssw0rd, выполните следующую команду:
mysql -u dvwa -pp@ssw0rd -D dvwa
Примечание: после -p нет пробела
Если вы видите следующее, пароль правильный:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 10.3.22-MariaDB-0ubuntu0.19.10.1 Ubuntu 19.10
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab и другие.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [dvwa]>
Поскольку вы можете подключиться через командную строку, вероятно, в конфигурационном файле есть ошибка. Проверьте его еще раз и, если проблема не устранена, сообщите о ней.
Если вы видите следующее, значит, вы используете неверное имя пользователя или пароль. Повторите шаги Настройка базы данных и убедитесь, что вы используете одно и то же имя пользователя и пароль на протяжении всего процесса.
ERROR 1045 (28000): Access denied for user 'dvwa'@'localhost' (using password: YES)
Если вы видите следующее сообщение, значит учетные данные пользователя верны, но у пользователя нет доступа к базе данных. Повторите шаги настройки и проверьте имя базы данных, которое вы используете.
ОШИБКА 1044 (42000): Access denied for user 'dvwa'@'localhost' to database 'dvwa'
Последней ошибкой, которую вы можете получить, является следующая:
ОШИБКА 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Это не проблема аутентификации, а сообщение о том, что сервер базы данных не работает. Запустите его с помощью следующей команды
sudo service mysql start
Ошибка, похожая на эту:
Fatal error: Uncaught mysqli_sql_exception: Connection refused in /var/sites/dvwa/non-secure/htdocs/dvwa/includes/dvwaPage.inc.php:535
Означает, что ваш сервер базы данных не работает или в файле конфигурации указан неверный IP-адрес.
Проверьте эту строку в файле конфигурации, чтобы увидеть, где должен находиться сервер базы данных:
$_DVWA[ 'db_server' ] = '127.0.0.1';
Затем перейдите на этот сервер и проверьте, работает ли он. В Linux это можно сделать с помощью:
systemctl status mariadb.service
Вы должны увидеть что-то подобное, главное, чтобы было указано «active (running)» (активен (работает)).
● mariadb.service - MariaDB 10.5.19 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
Active: active (running) since Thu 2024-03-14 16:04:25 GMT; 1 week 5 days ago
Если он не запущен, вы можете запустить его с помощью:
sudo systemctl stop mariadb.service
Обратите внимание на sudo и убедитесь, что вы ввели свой пароль пользователя Linux, если он запрашивается.
В Windows проверьте статус в консоли XAMPP.
В последних версиях MySQL, PHP больше не может взаимодействовать с базой данных в своей конфигурации по умолчанию. Если при попытке запустить скрипт настройки вы получаете следующее сообщение, это означает, что у вас есть конфигурация.
Database Error #2054: The server requested authentication method unknown to the client.
У вас есть два варианта, самый простой из которых — удалить MySQL и установить MariaDB. Ниже приведено официальное руководство от проекта MariaDB:
https://mariadb.com/resources/blog/how-to-migrate-from-mysql-to-mariadb-on-linux-in-five-steps/
В качестве альтернативы выполните следующие действия:
Как root отредактируйте следующий файл: /etc/mysql/mysql.conf.d/mysqld.cnf
Под строкой [mysqld] добавьте следующее:
default-authentication-plugin=mysql_native_password
Перезапустите базу данных: sudo service mysql restart
Проверьте метод аутентификации для пользователя базы данных:
mysql> select Host,User, plugin from mysql.user where mysql.user.User = 'dvwa';
+-----------+------------------+-----------------------+
| Host | User | plugin |
+-----------+------------------+-----------------------+
| localhost | dvwa | caching_sha2_password |
+-----------+------------------+-----------------------+
1 rows in set (0.00 sec)
Скорее всего, вы увидите caching_sha2_password. Если это так, выполните следующую команду:
mysql> ALTER USER dvwa@localhost IDENTIFIED WITH mysql_native_password BY 'p@ssw0rd';
Повторно запустив проверку, вы должны увидеть mysql_native_password.
mysql> select Host,User, plugin from mysql.user where mysql.user.User = 'dvwa';
+-----------+------+-----------------------+
| Host | User | plugin |
+-----------+------+-----------------------+
| localhost | dvwa | mysql_native_password |
+-----------+------+-----------------------+
1 rows in set (0.00 sec)
После всего этого процесс настройки должен работать в обычном режиме.
Если вам нужна дополнительная информация, см. следующую страницу: https://www.php.net/manual/en/mysqli.requirements.php.
Сервер базы данных не работает. В дистрибутиве на основе Debian это можно сделать с помощью:
sudo service mysql start
Есть несколько причин, по которым могут возникать эти ошибки, но наиболее вероятная из них — версия сервера базы данных, которую вы используете, несовместима с версией PHP.
Чаще всего это происходит, когда вы используете последнюю версию MySQL в качестве PHP, и они не совместимы. Лучший совет — отказаться от MySQL и установить MariaDB, так как мы не можем обеспечить поддержку данной версии.
Для получения дополнительной информации см.:
https://www.ryadel.com/en/fix-mysql-server-gone-away-packets-order-similar-mysql-related-errors/
Возможно, у вас возникли проблемы с SELinux. Отключите SELinux или выполните эту команду, чтобы веб-сервер мог обмениваться данными с базой данных:
setsebool -P httpd_can_network_connect_db 1
Если при попытке запустить MariaDB в журналах Docker появляется следующая ошибка, вероятно, это связано с недостатком памяти на хост-машине. Если вы используете эту программу в хостинговой среде, лучшим решением будет увеличить размер машины, чтобы получить больше памяти, и повторить попытку.
[Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.11.15+maria~ubu2204 started.
[Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB
Возможно, вам также потребуется добавить следующую строку в раздел volumes вашего файла compose.yml:
- /sys/fs/cgroup/memory.pressure:/sys/fs/cgroup/memory.pressure
В результате раздел volumes файла конфигурации по умолчанию будет изменен следующим образом:
volumes:
- dvwa:/var/lib/mysql
- /sys/fs/cgroup/memory.pressure:/sys/fs/cgroup/memory.pressure
Для получения дополнительной информации о том, почему это работает, см. эту проблему.
Для получения последней информации по устранению неполадок прочитайте открытые и закрытые заявки в репозитории git:
https://github.com/digininja/DVWA/issues
Перед отправкой заявки убедитесь, что вы используете последнюю версию кода из репозитория. Это не последняя версия, а последний код из основной ветки.
При создании заявки, пожалуйста, предоставьте как минимум следующую информацию:
Я постараюсь собрать несколько обучающих видео, в которых будут рассмотрены некоторые уязвимости, показано, как их обнаружить, а затем как их использовать. Вот те, которые я сделал до сих пор:
Обнаружение и использование отраженного XSS
Поддержка этой функции ограничена, прежде чем поднимать вопросы, убедитесь, что вы готовы работать над отладкой, а не просто заявлять, что «это не работает».
По умолчанию SQLi и Blind SQLi выполняются на сервере MariaDB/MySQL, используемом сайтом, но можно переключиться на тестирование SQLi на SQLite3.
Я не буду рассказывать, как заставить SQLite3 работать с PHP, но это должно быть просто: нужно установить пакет php-sqlite3 и убедиться, что он включен.
Чтобы выполнить переключение, просто отредактируйте файл конфигурации и добавьте или отредактируйте следующие строки:
$_DVWA["SQLI_DB"] = "sqlite";
$_DVWA["SQLITE_DB"] = "sqli.db";
По умолчанию используется файл database/sqli.db. Если вы что-то испортили, просто скопируйте файл database/sqli.db.dist поверх него.
Задачи точно такие же, как и для MariaDB, только выполняются в SQLite3.
Спасибо за все ваши вклады и за то, что поддерживаете этот проект в актуальном состоянии. :heart:
Если у вас есть идеи, предложения по улучшению или вы просто хотите сотрудничать, приглашаем вас принять участие в проекте, не стесняйтесь присылать свои PR.
<p align="center"> <a href="https://github.com/digininja/DVWA/graphs/contributors"> </a> </p>Проще говоря, пожалуйста, не делайте этого!
Примерно раз в год кто-нибудь отправляет отчет об уязвимости, которую он обнаружил в приложении. Некоторые отчеты написаны хорошо, иногда даже лучше, чем те, что я видел в платных отчетах о тестировании на проникновение, а некоторые просто гласят: «У вас отсутствуют заголовки, заплатите мне».
В 2023 году это вышло на совершенно новый уровень, когда кто-то решил запросить CVE для одной из уязвимостей, и ему был присвоен номер CVE-2023-39848. Это вызвало много веселья, и было потрачено много времени на исправление этой ситуации.
Приложение имеет уязвимости, и это сделано намеренно. Большинство из них хорошо задокументированы, и вы можете проработать их в качестве уроков, другие же являются «скрытыми» и их нужно найти самостоятельно. Если вы действительно хотите продемонстрировать свои навыки в поиске скрытых бонусов, напишите пост в блоге или создайте видео, так как, вероятно, найдутся люди, которые будут заинтересованы в том, чтобы узнать о них и о том, как вы их нашли. Если вы пришлете нам ссылку, мы даже можем включить ее в список ссылок.
Главная страница проекта: https://github.com/digininja/DVWA
Создано командой DVWA