Damn Vulnerable Web Application (DVWA) est une application Web PHP/MySQL qui est sacrément vulnérable. Son objectif principal est d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre les processus de sécurisation des applications Web et d'aider les étudiants et les enseignants à se renseigner sur la sécurité des applications Web dans un cours contrôlé. environnement de la pièce.
L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes , avec différents niveaux de difficulté , avec une interface simple et directe. Veuillez noter qu'il existe des vulnérabilités documentées et non documentées avec ce logiciel. C'est intentionnel. Nous vous encourageons à essayer de découvrir autant de problèmes que possible.
Cette foutue application Web vulnérable est sacrément vulnérable ! Ne le téléchargez pas dans le dossier HTML public de votre fournisseur d'hébergement ou sur tout serveur Internet , car ils seraient compromis. Il est recommandé d'utiliser une machine virtuelle (telle que VirtualBox ou VMware), configurée en mode réseau NAT. Sur une machine invitée, vous pouvez télécharger et installer XAMPP pour le serveur Web et la base de données.
Nous n'assumons aucune responsabilité quant à la manière dont quiconque utilise cette application (DVWA). Nous avons clairement indiqué les objectifs de l'application et elle ne doit pas être utilisée à des fins malveillantes. Nous avons émis des avertissements et pris des mesures pour empêcher les utilisateurs d'installer DVWA sur des serveurs Web en direct. Si votre serveur Web est compromis via une installation de DVWA, ce n'est pas notre responsabilité, c'est la responsabilité de la ou des personne(s) qui l'ont téléchargé et installé.
Ce fichier fait partie de Damn Vulnerable Web Application (DVWA).
Damn Vulnerable Web Application (DVWA) est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la licence, soit (à votre choix) toute version ultérieure.
Damn Vulnerable Web Application (DVWA) est distribuée dans l'espoir qu'elle sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de QUALITÉ MARCHANDE ou d’ADAPTATION À UN USAGE PARTICULIER. Consultez la licence publique générale GNU pour plus de détails.
Vous devriez avoir reçu une copie de la licence publique générale GNU ainsi que Damn Vulnerable Web Application (DVWA). Sinon, consultez https://www.gnu.org/licenses/.
Ce fichier est disponible en plusieurs langues :
Arabe : العربية
Chinois : 简体中文
Français : Français
Coréen : 한국어
Persan : فارسی
Polonais : Polski
Portugais : Português
Espagnol : Español
Turc : Türkçe
Indonésie : Indonésie
Vietnamien : vietnamien
Si vous souhaitez contribuer à une traduction, veuillez soumettre un PR. Notez cependant que cela ne signifie pas simplement l’exécuter via Google Translate et l’envoyer, ceux-ci seront rejetés. Soumettez votre version traduite en ajoutant un nouveau fichier « README.xx.md » où xx est le code à deux lettres de la langue souhaitée (basé sur la norme ISO 639-1).
Bien qu'il existe différentes versions de DVWA, la seule version prise en charge est la dernière source du référentiel officiel GitHub. Vous pouvez soit le cloner depuis le dépôt :
clone git https://github.com/digininja/DVWA.git
Ou téléchargez un ZIP des fichiers.
Notez qu'il ne s'agit pas d'un script DVWA officiel, il a été écrit par IamCarron. Beaucoup de travail a été consacré à la création du script et, lors de sa création, il n'a rien fait de malveillant. Cependant, il est recommandé de revoir le script avant de l'exécuter aveuglément sur votre système, juste au cas où. Veuillez signaler tout bug à IamCarron, pas ici.
Un script de configuration automatisé pour DVWA sur les machines basées sur Debian, notamment Kali, Ubuntu, Kubuntu, Linux Mint, Zorin OS...
Remarque : ce script nécessite les privilèges root et est conçu pour les systèmes basés sur Debian. Assurez-vous de l'exécuter en tant qu'utilisateur root.
Système d'exploitation : système basé sur Debian (Kali, Ubuntu, Kubuntu, Linux Mint, Zorin OS)
Privilèges : Exécuter en tant qu'utilisateur root
Cela téléchargera un script d'installation écrit par @IamCarron et l'exécutera automatiquement. Cela ne serait pas inclus ici si nous ne faisions pas confiance à l'auteur et au script tels qu'ils étaient lorsque nous l'avons examiné, mais il y a toujours un risque que quelqu'un devienne un voyou, et donc si vous ne vous sentez pas en sécurité en exécutant le code de quelqu'un d'autre sans le réviser. le vous-même, suivez le processus manuel et vous pourrez le consulter une fois téléchargé.
sudo bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh)"
Téléchargez le scénario :
wget https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh
Rendre le script exécutable :
chmod +x Install-DVWA.sh
Exécutez le script en tant que root :
sudo ./Install-DVWA.sh
Installation de DVWA sur Kali exécuté dans VirtualBox
Installation de DVWA sous Windows à l'aide de XAMPP
Installation d'une foutue application Web vulnérable (DVWA) sur Windows 10
Le moyen le plus simple d'installer DVWA consiste à télécharger et à installer XAMPP si vous ne disposez pas déjà d'une configuration de serveur Web.
XAMPP est une distribution Apache très facile à installer pour Linux, Solaris, Windows et Mac OS X. Le package comprend le serveur Web Apache, MySQL, PHP, Perl, un serveur FTP et phpMyAdmin.
Cette vidéo vous guide tout au long du processus d'installation pour Windows, mais elle devrait être similaire pour les autres systèmes d'exploitation.
Grâce à hoang-himself et à JGillam, chaque validation dans la branche master
entraîne la création d'une image Docker prête à être extraite de GitHub Container Registry.
Pour plus d'informations sur ce que vous obtenez, vous pouvez parcourir les images Docker prédéfinies.
Prérequis : Docker et Docker Compose.
Si vous utilisez Docker Desktop, les deux devraient déjà être installés.
Si vous préférez Docker Engine sous Linux, assurez-vous de suivre leur guide d'installation.
Nous fournissons une prise en charge de la dernière version de Docker, comme indiqué ci-dessus. Si vous utilisez Linux et le package Docker fourni avec votre gestionnaire de packages, cela fonctionnera probablement aussi, mais le support ne sera que de la meilleure façon possible.
La mise à niveau de Docker de la version du gestionnaire de packages vers la version amont nécessite la désinstallation des anciennes versions, comme indiqué dans leurs manuels pour Ubuntu, Fedora et autres. Vos données Docker (conteneurs, images, volumes, etc.) ne devraient pas être affectées, mais si vous rencontrez un problème, assurez-vous d'en informer Docker et d'utiliser les moteurs de recherche en attendant.
Ensuite, pour commencer :
Exécutez docker version
et docker compose version
pour voir si Docker et Docker Compose sont correctement installés. Vous devriez pouvoir voir leurs versions dans la sortie.
Par exemple:
>>> 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
Si vous ne voyez rien ou obtenez une erreur de commande introuvable, suivez les conditions préalables pour configurer Docker et Docker Compose.
Clonez ou téléchargez ce référentiel et extrayez-le (voir Télécharger).
Ouvrez un terminal de votre choix et changez son répertoire de travail dans ce dossier ( DVWA
).
Exécutez docker compose up -d
.
DVWA est désormais disponible sur http://localhost:4280
.
Notez que pour exécuter DVWA dans des conteneurs, le serveur Web écoute sur le port 4280 au lieu du port habituel 80. Pour plus d'informations sur cette décision, consultez Je souhaite exécuter DVWA sur un autre port.
Si vous avez apporté des modifications locales et souhaitez créer le projet à partir de local, accédez à compose.yml
et remplacez pull_policy: always
par pull_policy: build
.
L'exécution docker compose up -d
devrait inciter Docker à créer une image à partir du local, quel que soit ce qui est disponible dans le registre.
Voir aussi : pull_policy
.
Idéalement, vous devriez utiliser la dernière version stable de PHP car c'est la version sur laquelle cette application sera développée et testée.
Aucune assistance ne sera fournie à toute personne essayant d'utiliser PHP 5.x.
Les versions inférieures à 7.3 ont des problèmes connus qui causeront des problèmes, la plupart de l'application fonctionnera, mais des choses aléatoires peuvent ne pas fonctionner. À moins que vous n'ayez une très bonne raison d'utiliser une version aussi ancienne, l'assistance ne sera pas fournie.
Si vous utilisez une distribution Linux basée sur Debian, vous devrez installer les packages suivants (ou leur équivalent) :
apache2
libapache2-mod-php
serveur mariadb
client mariadb
php php-mysqli
php-gd
Je recommanderais de faire une mise à jour avant cela, juste pour vous assurer que vous obtiendrez la dernière version de tout.
mise à jour appropriée apt install -y apache2 serveur-mariadb client-mariadb php php-mysqli php-gd libapache2-mod-php
Le site fonctionnera avec MySQL au lieu de MariaDB mais nous recommandons fortement MariaDB car il fonctionne immédiatement alors que vous devez apporter des modifications pour que MySQL fonctionne correctement.
DVWA est livré avec une copie factice de son fichier de configuration que vous devrez copier en place, puis apporter les modifications appropriées. Sous Linux, en supposant que vous soyez dans le répertoire DVWA, cela peut être effectué comme suit :
cp config/config.inc.php.dist config/config.inc.php
Sous Windows, cela peut être un peu plus difficile si vous masquez les extensions de fichiers. Si vous n'êtes pas sûr de cela, cet article de blog en explique plus :
Comment faire en sorte que Windows affiche les extensions de fichiers
Au lieu de modifier le fichier de configuration, vous pouvez également définir la plupart des paramètres à l'aide de variables d'environnement. Dans un déploiement Docker ou Kubernetes, cela permet de modifier la configuration sans créer de nouvelle image Docker. Vous trouverez les variables dans le fichier config/config.inc.php.dist.
Si vous souhaitez définir le niveau de sécurité par défaut sur « faible », ajoutez simplement la ligne suivante au fichier compose.yml :
environnement: - DB_SERVER=base de données - DEFAULT_SECURITY_LEVEL=faible
Pour configurer la base de données, cliquez simplement sur le bouton Setup DVWA
dans le menu principal, puis cliquez sur le bouton Create / Reset Database
. Cela créera/réinitialisera la base de données pour vous avec certaines données.
Si vous recevez une erreur lors de la tentative de création de votre base de données, assurez-vous que vos informations d'identification de base de données sont correctes dans ./config/config.inc.php
. Cela diffère de config.inc.php.dist, qui est un exemple de fichier.
Les variables sont définies comme suit par défaut :
$_DVWA[ 'db_server'] = '127.0.0.1';$_DVWA[ 'db_port'] = '3306';$_DVWA[ 'db_user' ] = 'dvwa';$_DVWA[ 'db_password' ] = 'p@ssw0rd ';$_DVWA[ 'base_dedonnées' ] = 'dvwa';
Notez que si vous utilisez MariaDB plutôt que MySQL (MariaDB est la valeur par défaut dans Kali), vous ne pouvez pas utiliser l'utilisateur root de la base de données, vous devez créer un nouvel utilisateur de base de données. Pour cela, connectez-vous à la base de données en tant qu'utilisateur root puis utilisez les commandes suivantes :
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)
Certains outils ne fonctionnent pas bien avec l'authentification et ne peuvent donc pas être utilisés avec DVWA. Pour contourner ce problème, il existe une option de configuration permettant de désactiver la vérification de l'authentification. Pour ce faire, définissez simplement ce qui suit dans le fichier de configuration :
$_DVWA[ 'disable_authentication' ] = vrai ;
Vous devrez également définir le niveau de sécurité sur celui qui convient aux tests que vous souhaitez effectuer :
$_DVWA[ 'default_security_level' ] = 'faible';
Dans cet état, vous pouvez accéder à toutes les fonctionnalités sans avoir besoin de vous connecter et de définir des cookies.
./hackable/uploads/
- Doit être accessible en écriture par le service Web (pour le téléchargement de fichiers).
Sur les systèmes Linux, probablement trouvé dans /etc/php/xx/fpm/php.ini
ou /etc/php/xx/apache2/php.ini
.
Pour autoriser les inclusions de fichiers distants (RFI) :
allow_url_include = on
[allow_url_include]
allow_url_fopen = on
[allow_url_fopen]
Pour vous assurer que PHP affiche tous les messages d'erreur :
display_errors = on
[display_errors]
display_startup_errors = on
[display_startup_errors]
Assurez-vous de redémarrer le service php ou Apache après avoir effectué les modifications.
Ceci n'est requis que pour le laboratoire « CAPTCHA non sécurisé ». Si vous ne jouez pas avec ce laboratoire, vous pouvez ignorer cette section.
Généré une paire de clés API à partir de https://www.google.com/recaptcha/admin/create.
Ceux-ci vont ensuite dans les sections suivantes de ./config/config.inc.php
:
$_DVWA[ 'recaptcha_public_key' ]
$_DVWA[ 'recaptcha_private_key' ]
Nom d'utilisateur par défaut = admin
Mot de passe par défaut = password
...peut facilement être forcé brutalement ;)
URL de connexion : http://127.0.0.1/login.php
Remarque : Ce sera différent si vous avez installé DVWA dans un répertoire différent.
Ceux-ci supposent que vous utilisez une distribution basée sur Debian, telle que Debian, Ubuntu et Kali. Pour les autres distributions, suivez, mais mettez à jour la commande le cas échéant.
Si vous utilisez Docker Desktop, les journaux sont accessibles depuis l'application graphique. Certains détails mineurs peuvent changer avec les versions plus récentes, mais la méthode d'accès doit être la même.
Les journaux sont également accessibles depuis le terminal.
Ouvrez un terminal et changez son répertoire de travail en DVWA
Afficher les journaux fusionnés
Docker compose des journaux
Si vous souhaitez exporter les journaux vers un fichier, par exemple dvwa.log
Docker compose les journaux > dvwa.log
Nous n'utilisons pas le port 80 par défaut pour plusieurs raisons :
Certains utilisateurs exécutent peut-être déjà quelque chose sur le port 80.
Certains utilisateurs peuvent utiliser un moteur de conteneur sans racine (comme Podman) et 80 est un port privilégié (< 1024). Une configuration supplémentaire (par exemple, la définition de net.ipv4.ip_unprivileged_port_start
) est requise, mais vous devrez effectuer vos propres recherches.
Vous pouvez exposer DVWA sur un autre port en modifiant la liaison de port dans le fichier compose.yml
. Par exemple, vous pouvez modifier
ports : - 127.0.0.1:4280:80
à
ports : - 127.0.0.1:8806:80
DVWA est désormais accessible sur http://localhost:8806
.
Dans les cas où vous souhaitez que DVWA soit accessible non seulement exclusivement depuis votre propre appareil, mais également sur votre réseau local (par exemple parce que vous configurez une machine de test pour un atelier), vous pouvez supprimer le 127.0.0.1:
du port mappage (ou remplacez-le par votre IP LAN). De cette façon, il écoutera sur tous les appareils disponibles. La valeur par défaut doit toujours être d'écouter uniquement sur votre périphérique de bouclage local. Après tout, il s’agit d’une application Web sacrément vulnérable, exécutée sur votre machine.
Le fichier compose.yml
inclus exécute automatiquement DVWA et sa base de données au démarrage de Docker.
Pour désactiver cela, vous pouvez supprimer ou commenter les lignes restart: unless-stopped
dans le fichier compose.yml
.
Si vous souhaitez désactiver temporairement ce comportement, vous pouvez exécuter docker compose stop
ou utiliser Docker Desktop, rechercher dvwa
et cliquer sur Stop. De plus, vous pouvez supprimer les conteneurs ou exécuter docker compose down
.
Sur les systèmes Linux, Apache génère deux fichiers journaux par défaut, access.log
et error.log
et sur les systèmes basés sur Debian, ceux-ci se trouvent généralement dans /var/log/apache2/
.
Lorsque vous soumettez des rapports d'erreurs, des problèmes, etc., veuillez inclure au moins les cinq dernières lignes de chacun de ces fichiers. Sur les systèmes basés sur Debian, vous pouvez obtenir ceci comme ceci :
tail -n 5 /var/log/apache2/access.log /var/log/apache2/error.log
Si vous rencontrez ce problème, vous devez comprendre les emplacements des fichiers. Par défaut, la racine du document Apache (l'endroit où il commence à rechercher du contenu Web) est /var/www/html
. Si vous placez le fichier hello.txt
dans ce répertoire, pour y accéder, vous accéderez à http://localhost/hello.txt
.
Si vous avez créé un répertoire et y avez placé le fichier - /var/www/html/mydir/hello.txt
- vous devrez alors accéder à http://localhost/mydir/hello.txt
.
Linux est par défaut sensible à la casse et donc dans l'exemple ci-dessus, si vous essayez d'accéder à l'un de ces éléments, vous obtiendrez un 404 Not Found
:
http://localhost/MyDir/hello.txt
http://localhost/mydir/Hello.txt
http://localhost/MYDIR/hello.txt
Comment cela affecte-t-il DVWA ? La plupart des gens utilisent git pour cloner DVWA dans /var/www/html
, cela leur donne le répertoire /var/www/html/DVWA/
avec tous les fichiers DVWA qu'il contient. Ils accèdent ensuite à http://localhost/
et obtiennent soit un 404
, soit la page de bienvenue Apache par défaut. Comme les fichiers sont au format DVWA, vous devez accéder à http://localhost/DVWA
.
L'autre erreur courante consiste à accéder à http://localhost/dvwa
qui donnera un 404
car dvwa
n'est pas DVWA
en ce qui concerne la correspondance de répertoire Linux.
Ainsi, après l'installation, si vous essayez de visiter le site et d'obtenir un 404
, réfléchissez à l'endroit où vous avez installé les fichiers, à leur emplacement par rapport à la racine du document et à la casse du répertoire que vous avez utilisé.
Il s'agit généralement d'un problème de configuration qui cache un autre problème. Par défaut, PHP n'affiche pas les erreurs, et donc si vous avez oublié d'activer l'affichage des erreurs pendant le processus d'installation, tout autre problème, tel qu'un échec de connexion à la base de données, arrêtera le chargement de l'application mais le message vous dira quoi. est faux sera caché.
Pour résoudre ce problème, assurez-vous de définir display_errors
et display_startup_errors
comme indiqué dans la configuration PHP, puis redémarrez Apache.
Si vous voyez ce qui suit lors de l'exécution du script d'installation, cela signifie que le nom d'utilisateur ou le mot de passe dans le fichier de configuration ne correspondent pas à ceux configurés dans la base de données :
Database Error #1045: Access denied for user 'notdvwa'@'localhost' (using password: YES).
L'erreur vous indique que vous utilisez le nom d'utilisateur notdvwa
.
L'erreur suivante indique que vous avez pointé le fichier de configuration vers la mauvaise base de données.
SQL: Access denied for user 'dvwa'@'localhost' to database 'notdvwa'
Cela signifie que vous utilisez l'utilisateur dvwa
et que vous essayez de vous connecter à la base de données notdvwa
.
La première chose à faire est de vérifier que ce que vous pensez avoir mis dans le fichier de configuration est ce qui s'y trouve réellement.
Si cela correspond à ce que vous attendez, la prochaine chose à faire est de vérifier que vous pouvez vous connecter en tant qu'utilisateur sur la ligne de commande. En supposant que vous disposez d'un utilisateur de base de données dvwa
et d'un mot de passe p@ssw0rd
, exécutez la commande suivante :
mysql -u dvwa -pp@ssw0rd -D dvwa
Remarque : Il n'y a pas d'espace après le -p
Si vous voyez ce qui suit, le mot de passe est correct :
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]>
Comme vous pouvez vous connecter sur la ligne de commande, il y a probablement un problème dans le fichier de configuration, vérifiez-le, puis soulevez un problème si vous ne parvenez toujours pas à faire fonctionner les choses.
Si vous voyez ce qui suit, le nom d'utilisateur ou le mot de passe que vous utilisez est erroné. Répétez les étapes de configuration de la base de données et assurez-vous d'utiliser le même nom d'utilisateur et le même mot de passe tout au long du processus.
ERROR 1045 (28000): Access denied for user 'dvwa'@'localhost' (using password: YES)
Si vous obtenez le message suivant, les informations d'identification de l'utilisateur sont correctes mais l'utilisateur n'a pas accès à la base de données. Encore une fois, répétez les étapes de configuration et vérifiez le nom de la base de données que vous utilisez.
ERROR 1044 (42000): Access denied for user 'dvwa'@'localhost' to database 'dvwa'
La dernière erreur que vous pourriez obtenir est la suivante :
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Il ne s'agit pas d'un problème d'authentification mais vous indique que le serveur de base de données n'est pas en cours d'exécution. Commencez-le avec ce qui suit
démarrage du service sudo mysql
Une erreur similaire à celle-ci :
Fatal error: Uncaught mysqli_sql_exception: Connection refused in /var/sites/dvwa/non-secure/htdocs/dvwa/includes/dvwaPage.inc.php:535
Cela signifie que votre serveur de base de données ne fonctionne pas ou que vous avez une mauvaise adresse IP dans le fichier de configuration.
Vérifiez cette ligne dans le fichier de configuration pour voir où le serveur de base de données devrait se trouver :
$_DVWA[ 'serveur_base' ] = '127.0.0.1';
Accédez ensuite à ce serveur et vérifiez qu'il fonctionne. Sous Linux, cela peut être fait avec :
statut systemctl mariadb.service
Et vous cherchez quelque chose comme ça, l'important est qu'il soit écrit active (running)
.
● mariadb.service - Serveur de base de données MariaDB 10.5.19 Chargé : chargé (/lib/systemd/system/mariadb.service ; activé ; preset : activé) Actif : actif (en cours d'exécution) depuis le jeu. 2024-03-14 16:04:25 GMT ; il y a 1 semaine 5 jours
S'il ne fonctionne pas, vous pouvez le démarrer avec :
sudo systemctl arrête mariadb.service
Notez le sudo
et assurez-vous de saisir votre mot de passe utilisateur Linux si cela vous est demandé.
Sous Windows, vérifiez l'état dans la console XAMPP.
Avec les versions les plus récentes de MySQL, PHP ne peut plus communiquer avec la base de données dans sa configuration par défaut. Si vous essayez d'exécuter le script d'installation et obtenez le message suivant, cela signifie que vous avez la configuration.
Database Error #2054: The server requested authentication method unknown to the client.
Vous avez deux options, la plus simple est de désinstaller MySQL et d'installer MariaDB. Ce qui suit est le guide officiel du projet MariaDB :
https://mariadb.com/resources/blog/how-to-migrate-from-mysql-to-mariadb-on-linux-in-five-steps/
Vous pouvez également suivre ces étapes :
En tant que root, éditez le fichier suivant : /etc/mysql/mysql.conf.d/mysqld.cnf
Sous la ligne [mysqld]
, ajoutez ce qui suit : default-authentication-plugin=mysql_native_password
Redémarrez la base de données : sudo service mysql restart
Vérifiez la méthode d'authentification de votre utilisateur de base de données :
mysql> sélectionnez Hôte, Utilisateur, plugin depuis mysql.user où mysql.user.User = 'dvwa';+---------------+-------------- ----+-------------+| Hôte | Utilisateur | plugin |+-----------+------------------+---------------- -------+| hôte local | dvwa | caching_sha2_password |+-----------+--------------------------------+---------------- -------+1 lignes dans l'ensemble (0,00 sec)
Vous verrez probablement caching_sha2_password
. Si vous le faites, exécutez la commande suivante :
mysql> ALTER USER dvwa@localhost IDENTIFIÉ AVEC mysql_native_password PAR 'p@ssw0rd' ;
En réexécutant la vérification, vous devriez maintenant voir mysql_native_password
.
mysql> sélectionnez Hôte, Utilisateur, plugin depuis mysql.user où mysql.user.User = 'dvwa';+-----------+------+------- ----------------+| Hôte | Utilisateur | plugin |+-----------+------+-----------------------+| hôte local | dvwa | mysql_native_password |+----------+------+-----------------------+1 ligne dans l'ensemble (0,00 s)
Après tout cela, le processus de configuration devrait maintenant fonctionner normalement.
Si vous souhaitez plus d'informations consultez la page suivante : https://www.php.net/manual/en/mysqli.requirements.php.
Le serveur de base de données n'est pas en cours d'exécution. Dans une distribution basée sur Debian, cela peut être fait avec :
démarrage du service sudo mysql
Il existe plusieurs raisons pour lesquelles vous pourriez obtenir ces erreurs, mais la plus probable est que la version du serveur de base de données que vous utilisez n'est pas compatible avec la version de PHP.
Cela se produit le plus souvent lorsque vous exécutez la dernière version de MySQL en tant que PHP et que cela ne fonctionne pas bien. Meilleur conseil, abandonnez MySQL et installez MariaDB car ce n'est pas quelque chose que nous pouvons prendre en charge.
Pour plus d'informations, voir :
https://www.ryadel.com/en/fix-mysql-server-gone-away-packets-order-similar-mysql-rated-errors/
Apache ne dispose peut-être pas de privilèges suffisamment élevés pour exécuter des commandes sur le serveur Web. Si vous exécutez DVWA sous Linux, assurez-vous d'être connecté en tant que root. Sous Windows, connectez-vous en tant qu'administrateur.
Vous rencontrez peut-être des problèmes avec SELinux. Désactivez SELinux ou exécutez cette commande pour permettre au serveur Web de communiquer avec la base de données :
setsebool -P httpd_can_network_connect_db 1
Pour obtenir les dernières informations de dépannage, veuillez lire les tickets ouverts et fermés dans le dépôt git :
https://github.com/digininja/DVWA/issues
Avant de soumettre un ticket, assurez-vous que vous exécutez la dernière version du code du dépôt. Ce n'est pas la dernière version, c'est le dernier code de la branche master.
Si vous déposez un ticket, veuillez soumettre au moins les informations suivantes :
Système opérateur
Les 5 dernières lignes du journal des erreurs du serveur Web directement après l'erreur que vous signalez se produit
S'il s'agit d'un problème d'authentification de base de données, suivez les étapes ci-dessus et capturez chaque étape. Soumettez-les avec une capture d'écran de la section du fichier de configuration montrant l'utilisateur et le mot de passe de la base de données.
Une description complète de ce qui ne va pas, de ce à quoi vous vous attendez et de ce que vous avez essayé de faire pour y remédier. "Connexion interrompue" ne suffit pas pour que nous puissions comprendre votre problème et vous aider à le résoudre.
Je vais essayer de rassembler quelques vidéos tutorielles qui présentent certaines des vulnérabilités et montrent comment les détecter puis comment les exploiter. Voici ceux que j'ai réalisés jusqu'à présent :
Trouver et exploiter le XSS réfléchi
La prise en charge est limitée, avant de soulever des problèmes, assurez-vous que vous êtes prêt à travailler sur le débogage, ne prétendez pas simplement « cela ne fonctionne pas ».
Par défaut, SQLi et Blind SQLi sont effectués sur le serveur MariaDB/MySQL utilisé par le site, mais il est possible de passer à la place pour effectuer les tests SQLi sur SQLite3.
Je ne vais pas expliquer comment faire fonctionner SQLite3 avec PHP, mais il devrait s'agir simplement d'installer le package php-sqlite3
et de s'assurer qu'il est activé.
Pour effectuer le changement, modifiez simplement le fichier de configuration et ajoutez ou modifiez ces lignes :
$_DVWA["SQLI_DB"] = "sqlite";$_DVWA["SQLITE_DB"] = "sqli.db";
Par défaut, il utilise le fichier database/sqli.db
, si vous vous trompez, copiez simplement database/sqli.db.dist
par-dessus.
Les défis sont exactement les mêmes que pour MySQL, ils s'exécutent simplement sur SQLite3.
Merci pour toutes vos contributions et pour garder ce projet à jour.
Si vous avez une idée, une sorte d'amélioration ou si vous souhaitez simplement collaborer, vous êtes invités à contribuer et à participer au projet, n'hésitez pas à envoyer votre PR.
Pour faire simple, ne le faites pas !
Une fois par an environ, quelqu'un soumettra un rapport sur une vulnérabilité qu'il a trouvée dans l'application, certains sont bien écrits, parfois meilleurs que ce que j'ai vu dans les rapports de tests d'intrusion payants, certains sont simplement "il vous manque des en-têtes, payez". moi".
En 2023, cela a atteint un tout autre niveau lorsque quelqu'un a décidé de demander un CVE pour l'une des vulnérabilités, il a reçu le CVE-2023-39848. Beaucoup d’hilarité s’en est suivie et du temps a été perdu pour corriger cela.
L’application présente des vulnérabilités, c’est délibéré. La plupart sont des cours bien documentés que vous étudiez sous forme de leçons, d'autres sont des cours « cachés », que vous pouvez trouver par vous-même. Si vous voulez vraiment montrer vos compétences pour trouver les extras cachés, écrivez un article de blog ou créez une vidéo car il y a probablement des gens qui seraient intéressés à en savoir plus sur eux et sur la façon dont vous les avez trouvés. Si vous nous envoyez le lien, nous pouvons même l'inclure dans les références.
Accueil du projet : https://github.com/digininja/DVWA
Créé par l'équipe DVWA