Чертовски уязвимое веб-приложение (DVWA) — это чертовски уязвимое веб-приложение PHP/MySQL. Его основная цель — помочь специалистам по безопасности проверить свои навыки и инструменты в правовой среде, помочь веб-разработчикам лучше понять процессы защиты веб-приложений, а также помочь студентам и преподавателям узнать о безопасности веб-приложений в контролируемом классе. обстановка помещения.
Цель DVWA — отработать некоторые из наиболее распространенных веб-уязвимостей различного уровня сложности с помощью простого и понятного интерфейса. Обратите внимание, что в этом программном обеспечении существуют как задокументированные, так и недокументированные уязвимости . Это намеренно. Вам рекомендуется попытаться обнаружить как можно больше проблем.
Чертовски уязвимое веб-приложение чертовски уязвимо! Не загружайте его в общедоступную html-папку вашего хостинг-провайдера или на любые серверы, подключенные к Интернету , поскольку они будут скомпрометированы. Рекомендуется использовать виртуальную машину (например, VirtualBox или VMware), для которой установлен сетевой режим NAT. На гостевой машине вы можете загрузить и установить XAMPP для веб-сервера и базы данных.
Мы не несем ответственности за то, как кто-либо использует это приложение (DVWA). Мы четко разъяснили цели приложения, и оно не должно использоваться злонамеренно. Мы выдали предупреждения и приняли меры, чтобы пользователи не могли устанавливать DVWA на работающие веб-серверы. Если ваш веб-сервер был взломан в результате установки DVWA, это не наша ответственность, а ответственность лиц, которые его загрузили и установили.
Этот файл является частью Damn Vulnerable Web Application (DVWA).
Damn Vulnerable Web Application (DVWA) — это бесплатное программное обеспечение: вы можете распространять его и/или изменять в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 Лицензии, либо (по вашему выбору) любая более поздняя версия.
Damn Vulnerable Web Application (DVWA) распространяется в надежде, что оно окажется полезным, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. Дополнительную информацию см. в Стандартной общественной лицензии GNU.
Вы должны были получить копию Стандартной общественной лицензии GNU вместе с Damn Vulnerable Web Application (DVWA). Если нет, см. https://www.gnu.org/licenses/.
Этот файл доступен на нескольких языках:
Арабский: العربية
Китайский: 简体中文
Французский: Français
Корейский: 한국어
Персидский: فارسی
Польский: Polski
Португальский: Português
Испанский: Español
Турецкий: Türkçe
Индонезия: Индонезия
Вьетнамский: Вьетнамский
Если вы хотите внести свой вклад в перевод, отправьте PR. Однако обратите внимание: это не означает, что просто пропустите его через Google Translate и отправьте, они будут отклонены. Отправьте переведенную версию, добавив новый файл README.xx.md, где xx — двухбуквенный код желаемого языка (на основе ISO 639-1).
Хотя существуют различные версии DVWA, единственной поддерживаемой версией является последняя версия из официального репозитория GitHub. Вы можете клонировать его из репо:
git-клон https://github.com/digininja/DVWA.git
Или загрузите ZIP-файл с файлами.
Обратите внимание: это не официальный скрипт DVWA, его написал IamCarron. На создание сценария было потрачено много работы, и когда он был создан, он не сделал ничего вредоносного, однако на всякий случай рекомендуется просмотреть сценарий, прежде чем слепо запускать его в своей системе. Пожалуйста, сообщайте о любых ошибках IamCarron, а не здесь.
Сценарий автоматической настройки DVWA на машинах под управлением Debian, включая Kali, Ubuntu, Kubuntu, Linux Mint, Zorin OS...
Примечание. Этот сценарий требует привилегий root и предназначен для систем на базе Debian. Убедитесь, что вы запускаете его от имени пользователя root.
Операционная система: система на базе Debian (Kali, Ubuntu, Kubuntu, Linux Mint, Zorin OS)
Привилегии: выполнять от имени пользователя 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 Установить-DVWA.sh
Запустите скрипт от имени пользователя root:
sudo ./Install-DVWA.sh
Установка DVWA на Kali, работающей в VirtualBox
Установка DVWA в Windows с помощью XAMPP
Установка чертовски уязвимого веб-приложения (DVWA) в Windows 10
Самый простой способ установить DVWA — загрузить и установить XAMPP, если у вас еще нет настроенного веб-сервера.
XAMPP — это очень простой в установке дистрибутив Apache для Linux, Solaris, Windows и Mac OS X. Пакет включает в себя веб-сервер Apache, MySQL, PHP, Perl, FTP-сервер и phpMyAdmin.
В этом видео рассказывается о процессе установки для Windows, но для других ОС он должен быть аналогичен.
Благодаря самому Хоангу и Джилламу, каждая фиксация в master
ветке приводит к созданию образа Docker, готового к извлечению из реестра контейнеров GitHub.
Для получения дополнительной информации о том, что вы получаете, вы можете просмотреть готовые образы Docker.
Предварительные требования: Docker и Docker Compose.
Если вы используете Docker Desktop, оба они уже должны быть установлены.
Если вы предпочитаете Docker Engine в Linux, обязательно следуйте их руководству по установке.
Мы предоставляем поддержку последней версии Docker, как показано выше. Если вы используете Linux и пакет Docker, поставляемый с вашим менеджером пакетов, он, вероятно, тоже будет работать, но поддержка будет только в меру усилий.
Обновление Docker с версии менеджера пакетов до вышестоящей требует удаления старых версий, как показано в руководствах для Ubuntu, Fedora и других. Ваши данные Docker (контейнеры, изображения, тома и т. д.) не должны быть затронуты, но если у вас возникнет проблема, обязательно сообщите об этом Docker и тем временем используйте поисковые системы.
Тогда для начала:
Запустите docker version
и docker compose version
чтобы проверить, правильно ли установлены Docker и Docker Compose. Вы сможете увидеть их версии в выводе.
Например:
>>> docker version
Client:
[...]
Version: 23.0.5
[...]
Server: Docker Desktop 4.19.0 (106363)
Engine:
[...]
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
.
В идеале вам следует использовать последнюю стабильную версию PHP, поскольку именно на ней будет разрабатываться и тестироваться это приложение.
Поддержка не будет предоставляться тем, кто пытается использовать PHP 5.x.
В версиях ниже 7.3 есть известные проблемы, которые могут вызвать проблемы; большая часть приложения будет работать, но случайные вещи могут не работать. Если у вас нет веских причин для использования такой старой версии, поддержка не будет оказана.
Если вы используете дистрибутив Linux на базе Debian, вам необходимо установить следующие пакеты (или их эквивалент) :
apache2
libapache2-мод-php
Мариадб-сервер
Мариадб-клиент
php-mysqli
php-gd
Я бы порекомендовал перед этим выполнить обновление, просто чтобы убедиться, что вы получите самую последнюю версию всего.
подходящее обновление apt install -y apache2 mariadb-server mariadb-client php php-mysqli php-gd libapache2-mod-php
Сайт будет работать с MySQL вместо MariaDB, но мы настоятельно рекомендуем MariaDB, поскольку он работает «из коробки», тогда как вам придется внести изменения, чтобы MySQL работал правильно.
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:
среда: - DB_SERVER=дб - DEFAULT_SECURITY_LEVEL=низкий
Чтобы настроить базу данных, просто нажмите кнопку Setup 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'] = правда;
Вам также потребуется установить уровень безопасности, соответствующий тестированию, которое вы хотите провести:
$_DVWA['default_security_level'] = 'низкий';
В этом состоянии вы можете получить доступ ко всем функциям без необходимости входа в систему и установки файлов cookie.
./hackable/uploads/
— веб-сервис должен иметь возможность записи (для загрузки файлов).
В системах Linux, скорее всего, находится в /etc/php/xx/fpm/php.ini
или /etc/php/xx/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. Для других дистрибутивов следуйте инструкциям, но при необходимости обновите команду.
Если вы используете Docker Desktop, доступ к журналам можно получить из графического приложения. Некоторые мелкие детали могут измениться в новых версиях, но метод доступа должен оставаться прежним.
Доступ к журналам также можно получить из терминала.
Откройте терминал и измените его рабочий каталог на DVWA.
Показать объединенные журналы
Docker составляет журналы
Если вы хотите экспортировать журналы в файл, например dvwa.log
Docker составляет журналы > dvwa.log
Мы не используем порт 80 по умолчанию по нескольким причинам:
Некоторые пользователи, возможно, уже что-то запускают на порту 80.
Некоторые пользователи могут использовать контейнерный движок без root (например, Podman), а 80 — это привилегированный порт (< 1024). Требуется дополнительная настройка (например, настройка net.ipv4.ip_unprivileged_port_start
), но вам придется исследовать ее самостоятельно.
Вы можете настроить DVWA на другом порту, изменив привязку порта в файле compose.yml
. Например, вы можете изменить
порты: - 127.0.0.1:4280:80
к
порты: - 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
и нажать «Стоп». Кроме того, вы можете удалить контейнеры или запустить docker compose down
.
В системах Linux Apache по умолчанию генерирует два файла журнала: access.log
и error.log
, а в системе на базе Debian они обычно находятся в /var/log/apache2/
.
Отправляя отчеты об ошибках, проблемах и т. п., пожалуйста, указывайте как минимум последние пять строк из каждого из этих файлов. В системах на базе Debian вы можете получить это следующим образом:
хвост -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.txt
http://localhost/mydir/Hello.txt
http://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.
Если при запуске сценария установки вы видите следующее, это означает, что имя пользователя или пароль в файле конфигурации не соответствуют тем, которые настроены в базе данных:
Database Error #1045: Access denied for user 'notdvwa'@'localhost' (using password: YES).
Ошибка сообщает вам, что вы используете имя пользователя notdvwa
.
Следующая ошибка говорит о том, что вы указали в файле конфигурации неправильную базу данных.
SQL: Access denied for user 'dvwa'@'localhost' to database 'notdvwa'
В нем говорится, что вы используете пользователя 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 and others.
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)
Если вы получите следующее сообщение, учетные данные пользователя верны, но у пользователя нет доступа к базе данных. Еще раз повторите шаги настройки и проверьте имя базы данных, которую вы используете.
ERROR 1044 (42000): Access denied for user 'dvwa'@'localhost' to database 'dvwa'
Последняя ошибка, которую вы можете получить, заключается в следующем:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Это не проблема аутентификации, но говорит о том, что сервер базы данных не работает. Начните со следующего
запуск службы sudo mysql
Ошибка, похожая на эту:
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 mariadb.service
И вы ищете что-то вроде этого, важно то, что там написано active (running)
.
● mariadb.service — сервер базы данных MariaDB 10.5.19. Загружено: загружено (/lib/systemd/system/mariadb.service; включено; предустановлено: включено) Активный: активен (работает) с четверга 14 марта 2024 г., 16:04:25 GMT; 1 неделю 5 дней назад
Если он не запущен, вы можете запустить его с помощью:
sudo systemctl остановить 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> выберите Хост, Пользователь, плагин из mysql.user, где mysql.user.User = 'dvwa';+-----------+-------------- ----+-----------------------+| Хозяин | Пользователь | плагин |+-----------+------------------+---------------- -------+| локальный хост | двава | caching_sha2_password |+-----------+------------------+---------------- -------+1 строка в наборе (0,00 сек)
Скорее всего, вы увидите caching_sha2_password
. Если да, выполните следующую команду:
mysql> ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ dvwa@localhost, ИДЕНТИФИЦИРОВАННОГО С помощью mysql_native_password BY 'p@ssw0rd';
Повторно запустив проверку, вы должны увидеть mysql_native_password
.
mysql> выберите Хост, Пользователь, плагин из mysql.user, где mysql.user.User = 'dvwa';+-----------+------+------- ----------------+| Хозяин | Пользователь | плагин |+-----------+------+-----------------------+| локальный хост | двава | mysql_native_password |+-----------+------+-----------------------+1 строка в наборе (0,00 сек)
После всего этого процесс установки должен работать нормально.
Если вам нужна дополнительная информация, посетите следующую страницу: https://www.php.net/manual/en/mysqli.requirements.php.
Сервер базы данных не работает. В дистрибутиве на основе Debian это можно сделать с помощью:
запуск службы sudo mysql
Есть несколько причин, по которым вы можете получить эти ошибки, но наиболее вероятно, что версия сервера базы данных, которую вы используете, несовместима с версией PHP.
Чаще всего это происходит, когда вы используете последнюю версию MySQL как PHP, и она не очень хорошо ладится. Лучший совет: откажитесь от MySQL и установите MariaDB, поскольку мы не можем это поддерживать.
Для получения дополнительной информации см.:
https://www.ryadel.com/en/fix-mysql-server-gone-away-packets-order-similar-mysql-related-errors/
Возможно, Apache не имеет достаточно высоких привилегий для запуска команд на веб-сервере. Если вы используете DVWA под Linux, убедитесь, что вы вошли в систему как root. Под Windows войдите в систему как Администратор.
Возможно, у вас возникли проблемы с SELinux. Либо отключите SELinux, либо запустите эту команду, чтобы веб-сервер мог общаться с базой данных:
setsebool -P httpd_can_network_connect_db 1
Для получения последней информации по устранению неполадок прочтите открытые и закрытые заявки в репозитории git:
https://github.com/digininja/DVWA/issues
Прежде чем отправлять заявку, убедитесь, что вы используете последнюю версию кода из репозитория. Это не последний релиз, это последний код из основной ветки.
Если вы подаете заявку, предоставьте как минимум следующую информацию:
Операционная система
Последние 5 строк из журнала ошибок веб-сервера непосредственно после возникновения ошибки, о которой вы сообщаете.
Если это проблема с аутентификацией базы данных, выполните описанные выше шаги и сделайте снимок экрана каждого шага. Отправьте их вместе со снимком экрана раздела файла конфигурации, показывающего пользователя и пароль базы данных.
Полное описание того, что идет не так, чего вы ожидаете и что вы пытались сделать, чтобы это исправить. «Логин сломан» недостаточно для того, чтобы мы могли понять вашу проблему и помочь ее решить.
Я попытаюсь собрать несколько обучающих видеороликов, в которых рассматриваются некоторые уязвимости и показано, как их обнаружить, а затем как их использовать. Вот те, которые я сделал на данный момент:
Поиск и использование отраженного 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
поверх него.
Проблемы точно такие же, как и для MySQL, только вместо этого они работают с SQLite3.
Спасибо за ваш вклад и за постоянное обновление этого проекта.
Если у вас есть идея, какое-то улучшение или вы просто хотите сотрудничать, вы можете внести свой вклад и принять участие в проекте, не стесняйтесь присылать свой PR.
Проще говоря, пожалуйста, не делайте этого!
Примерно раз в год кто-то отправляет отчет об уязвимости, обнаруженной в приложении. Некоторые из них написаны хорошо, иногда лучше, чем я видел в платных отчетах о пен-тестах, некоторые просто «вам не хватает заголовков, платите». мне".
В 2023 году ситуация вышла на совершенно новый уровень, когда кто-то решил запросить CVE для одной из уязвимостей и получил CVE-2023-39848. Последовало много веселья, и время было потрачено на исправление этого.
В приложении есть уязвимости, это сделано намеренно. Большинство из них — хорошо документированные, которые вы изучаете в качестве уроков, другие — «скрытые», которые можно найти самостоятельно. Если вы действительно хотите продемонстрировать свои навыки поиска скрытых дополнений, напишите сообщение в блоге или создайте видео, поскольку наверняка найдутся люди, которым будет интересно узнать о них и о том, как вы их нашли. Если вы отправите нам ссылку, мы можем даже включить ее в список ссылок.
Домашняя страница проекта: https://github.com/digininja/DVWA
Создано командой DVWA