Installer et configurer DVWA

Installer et configurer DVWA

  1. Objectifs

    • Connaitre les injections XSS
  2. Contexte

    • Installer et configurer DVWA

    • DVWA (Damn Vulnerable Web App) est une application Web qui est sacrément vulnérables écrite en PHP/MySql .
    • Elle est légère, facile à utiliser et plein de failles à exploiter.
    • DVWA est destiné aussi bien aux professionnels de la sécurité qu’aux personnes souhaitant s’entraîner ou voulant en apprendre plus sur les attaques Web, de tester des techniques d’attaques dans un environnement légal.
    • L’objectif principal de ce terrain de jeux est d’aider les testeurs de pénétration et les professionnels de la sécurité à tester leurs compétences et leurs outils.
    • En outre, cela peut aider les développeurs Web à mieux comprendre comment sécuriser les applications Web, mais aussi à aider les étudiants / enseignants à tout apprendre sur la sécurité des applications Web et les vulnérabilités éventuelles.



  3. DVWA

    • DVWA est une application Web extrêmement vulnérable, codée en PHP et utilisant une base de données MySQL.
    • Avec cette application Web pentesting étonnante, vous pouvez utiliser certaines des vulnérabilités Web les plus courantes (différents niveaux de difficulté) en utilisant son interface graphique très simple.
    • Vous pouvez jouer et essayer de découvrir autant de problèmes que possible afin d’approfondir vos connaissances / compétences.
      1. Les failles web disponible dans l’application DVWA:
        • Attaque par force brute: Téléchargement de fichiers,XSS (DOM)
        • Injection de commande: CAPTCHA non sécurisé,XSS (réfléchi)
        • Attaques CSRF: Injection SQL / Injection SQL (en aveugle),XSS (stocké)
        • Inclusion de fichier: ID de session faibles,Contournement CSP
        • Exécution de commande via shell_exec en PHP:
        • Faille upload:
      2. Exigences:
        • serveur Web (XAMPP comme alternative)
        • PHP
        • MySQL
        • Autres dépendances possibles (selon le système d’exploitation)
  4. Installation

    1. Tout d’abord,Télécharger l’application, puis placer le dossier Dvwa dans votre serveur web WAMP ou XAM ou encore Esayphp.
    2. Ouvrez votre navigateur Web et entrez "http://localhost/dvwa" dans la barre d’URL.
    3. Lancez l’installation de l’application sur localhost http://localhost/dvwa/index.php .
    4. Un installateur vous permettra de l’installer en quelques clics.
    5. Installer et configurer DVWA

    6. Pour installer la base de données, il suffit de cliquer sur setup dans le menu principal, puis cliquez sur Create / Reset Database .
    7. Cliquez sur le bouton "Créer / réinitialiser la base de données". Si cela indique une erreur, accédez à C:\wamp64\www\dvwa\dvwa\config , puis modifiez le fichier de configuration. Ici, j’utilise Bloc notes de windows pour éditer le fichier de configuration (voir l’image ci-dessous):
    8. Le mot de passe par défaut de db_passard étant 'p@ssw0rd', définissez $_DVWA[ ‘db_password’ ] = ”; (voir l’image ci-dessous).
    9. Installer et configurer DVWA

    10. Le login de l’application c’est : admin et le mot de passe : password
    11. Vous verrez une page comme indiqué ci-dessous. Oui, vous avez configuré DVWA avec succès.
    12. Installer et configurer DVWA

  5. Niveau de difficulté

    • L’application DVWA contient trois niveaux de difficulté: Facile, moyen et difficile.
    • Je vous recommande d’en choisir le niveau facile pour commencer, afin de ne pas se décourager. Bien entendu, vous pourrez passer aux niveaux suivants par la suite, mais il est préférable de commencer intelligemment.
    • Pour changer le niveau de difficulté, cliquez sur "DVWA Security" et choisissez le niveau qu’il vous faut.
  6. Les différents types de vulnérabilités

    • Dans DVWA, nous pouvons tester différents types de vulnérabilités.
    • BRUTE FORCE
      • Dans la vulnérabilité de force brute, nous pouvons tester si le portail de connexion est vulnérable à la force brute ou non. Ici, nous pouvons essayer presque toutes les combinaisons de mots, de nombres, de symboles spéciaux .
      • Nous pouvons également utiliser le fichier dictionnaire. Les principaux objectifs sont de déchiffrer le nom de connexion et le mot de passe. La force brute peut être appliquée dans les différents paramètres. Ici, nous devons écran de connexion par force brute.
    • INJECT DE COMMANDE
      • Dans la vulnérabilité d’injection de commande, le but est une exécution de commandes arbitraires sur le système d’exploitation hôte via une application vulnérable .
      • Les attaques par injection de commande sont possibles lorsqu’une application réussitdonnées non sécurisées fournies par l’utilisateur à un shell système . Dans cette attaque, l’attaquant envoie les commandes du système d’exploitation sont généralement exécutées avec les privilèges de l’application vulnérable, donc ici vous avez un champ vide afin que vous puissiez exécuter des commandes os sur cela.
    • CSRF
      • La falsification de requête intersite (CSRF) est une attaque qui force un utilisateur final à exécuter des actions indésirables sur une application Web dans laquelle il est actuellement authentifié .
      • Les attaques CSRF ciblent spécifiquement les demandes de changement d’état, pas le vol de donnéespuisque l’attaquant n’a aucun moyen de voir la réponse à la demande falsifiée. Avec un peu d’aide d’ingénierie sociale (comme l’envoi d’un lien par e-mail ou par chat), un attaquant peut tromper les utilisateurs d’une application Web pour qu’ils exécutent les actions de son choix.
      • Si la victime est un utilisateur normal, une attaque CSRF réussie peut forcer l’utilisateur à effectuer des demandes de changement d’état telles que le transfert de fonds, la modification de son adresse e-mail, etc. Si la victime est un compte administratif, CSRF peut compromettre l’ensemble de l’application Web .
      • Nous pouvons donc ici créer une fausse page et l’envoyer à la victime pour qu’elle effectue les étapes nécessaires.
    • TÉLÉCHARGEMENT DE FICHIER
      • Le téléchargement de fichiers est une fonctionnalité très simple, il suffit de télécharger le fichier sur le serveur. Pour réduire le risque, nous ne pouvons accepter que certaines extensions de fichiers, mais les attaquants sont capables d’encapsuler du code malveillant dans des types de fichiers inertes. Le test des fichiers malveillants vérifie que l’application / le système est capable de se protéger correctement contre les attaquants qui téléchargent des fichiers malveillants.
      • L’application peut permettre le téléchargement de fichiers malveillants contenant des exploits ou du shellcode sans les soumettre à l’analyse de fichiers malveillants ici, nous devons télécharger le shell sur le serveur.
    • CAPTCHA INSÉCURISÉ
      • CAPTCHA ( «Test de Turing public complètement automatisé pour séparer les ordinateurs et les humains» ) Les captchas sont généralement utilisés pour empêcher les robots de faire une action à la place des humains . Il devrait ajouter une couche de sécurité supplémentaire mais mal configuré cela pourrait conduire à un accès non autorisé.ici ce que nous devons faire est de contourner la fonction de sécurité captcha en utilisant les données de sabotage ou d’autres méthodes.
    • INJECTION SQL
      • L’injection SQL (SQLi) fait référence à une attaque par injection dans laquelle un attaquant peut exécuter des instructions SQL malveillantes qui contrôlent le serveur de base de données d’une application Web. Étant donné qu’une vulnérabilité d’injection SQL pourrait éventuellement affecter tout site Web ou application Web utilisant une base de données SQL, la vulnérabilité est l’une des vulnérabilités d’application Web les plus anciennes, les plus répandues et les plus dangereuses.
      • Un attaquant peut l’utiliser pour contourner les mécanismes d’authentification et d’autorisation d’une application Web et récupérer le contenu d’une base de données entière. L’injection SQL peut également être utilisée pour ajouter, modifier et supprimer des enregistrementsdans une base de données, affectant l’intégrité des données.
    • INJECTION BLIND SQL
      • Dans le Blind SQL, nous ne pouvons pas voir la réponse à ce moment-là. Ainsi, tout type de requête que nous déclenchons ne montrera aucune réponse à ce moment-là . Cela implique beaucoup de conjectures de la part de l’attaquant et prend du temps pour qu’il comprenne la structure des données qu’il essaie d’obtenir, mais avec compétence et persévérance, toutes les données sont toujours à portée de main. Pour aggraver les choses, les conjectures peuvent être facilement automatisées, ce qui réduit le temps nécessaire pour voler vos données.
      • Deux techniques couramment utilisées pour ce faire: l’ injection Blind SQL basée sur le contenu et le Blind SQL basé sur le tempsInjection. Ici, nous devons vérifier s’il est vulnérable à SQL aveugle ou non par exemple en utilisant la temporisation.
    • ID de SESSION FAIBLES
      • l’ attaque de prédiction de session se concentre sur la prédiction des valeurs d’ ID de session qui permettent à un attaquant de contourner le schéma d’ authentification d’une application. En analysant et en comprenant le processus de génération d’ ID de session , un attaquant peut prédire une valeur d’ID de session valide et accéder à l’application .
      • Dans la première étape, l’attaquant doit collecter un identifiant de session valide les valeurs utilisées pour identifier les utilisateurs authentifiés. Ensuite, il doit comprendre la structure de l’identifiant de session, les informations utilisées pour le créer et l’algorithme de chiffrement ou de hachage utilisé par l’application pour le protéger. Certaines implémentations incorrectes utilisent des identifiants de session composés d’un nom d’utilisateur ou d’autres informations prévisibles, comme l’horodatage ou l’adresse IP du client. Dans le pire des cas, ces informations sont utilisées dans le texte clair ou codées en utilisant un algorithme faible comme le codage base64.
      • De plus, l’attaquant peut implémenter une technique de force brute pour générer et tester différentes valeurs d’ID de session jusqu’à ce qu’il réussisse à accéder à l’application. Nous devons donc déterminer ici si cela produit ou non l’identifiant de session faible.
    • XSS (DOM)
      • Les scripts intersites sont une vulnérabilité qui permet à un attaquant d’envoyer du code malveillant (généralement sous la forme de Javascript) à un autre utilisateur. Étant donné qu’un navigateur ne peut pas savoir si le script doit être approuvé ou non , il exécutera le script dans le contexte de l’utilisateur, permettant à l’attaquant d’accéder à tous les cookies ou jetons de session conservés par le navigateur.
      • Alors qu’une vulnérabilité de script intersite traditionnelle se produit sur le code côté serveur, le script intersite basé sur un modèle d’objet de document est un type de vulnérabilité qui affecte le code de script dans le navigateur du client .
    • XSS (REFLECT)
      • Attaques XSS réfléchies, également appelées attaques non persistantes, se produit lorsqu’un script malveillant est renvoyé d’une application Web vers le navigateur de la victime.
      • Cette vulnérabilité est généralement le résultat de demandes entrantes qui ne sont pas suffisamment nettoyées , ce qui permet la manipulation des fonctions d’une application Web et l’activation de scripts malveillants. Ici, nous pouvons utiliser diverses fonctions javascript pour exploiter cela.
    • XSS (STORED)
      • La vulnérabilité XSS persistante (ou stockée) est une version plus dangereuse d’une faille de script intersite elle se produit lorsque les données fournies par l’attaquant sont enregistrées par le serveur, puis affichées en permanence sur “normal” pages renvoyées à d’autres utilisateurs au cours d’une navigation normale, sans échappement HTML approprié.
      • Ici, nous devons également utiliser javascript, mais ici, si vous avez intégré avec succès le javascript, cela se traduira dans le xss stocké, ce qui signifie que le contenu malveillant sera visible par tous.












    Source:

    • https://khannasecurity.com/blog/what-is-dvwa-and-why-ethical-hacker-love-this/
    • https://www.cyberpunk.rs/dvwa-damn-vulnerable-web-application
    • https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2680167-la-faille-xss