Source: OWASP ZAP Tutorial: Comprehensive Review Of OWASP ZAP Tool (softwaretestinghelp.com)

 

Ce tutoriel explique ce qu’est OWASP ZAP, comment ça marche, comment installer et configurer le proxy ZAP. Comprend également une démonstration de l’authentification ZAP et de la gestion des utilisateurs:

Pourquoi utiliser ZAP pour les tests d’intrusion ?

Pour développer une application web sécurisée, il faut savoir comment ils vont être attaqués. Voici l’exigence de sécurité des applications Web ou de tests d’intrusion.

Pour des raisons de sécurité, les entreprises utilisent des outils payants, mais OWASP ZAP est une excellente alternative open-source qui facilite les tests d’intrusion pour les testeurs.

OWASP ZAP

 

Qu’est-Ce Que OWASP ZAP?

Les tests d’intrusion aident à trouver les vulnérabilités avant qu’un attaquant ne le fasse. OSWAP ZAP est un outil gratuit open-source et est utilisé pour effectuer des tests d’intrusion. L’objectif principal de Zap est de permettre des tests de pénétration faciles pour trouver les vulnérabilités dans les applications Web.

Avantages ZAP :

  • Zap fournit multiplateforme, c’est-à-dire qu’il fonctionne sur tous les systèmes d’exploitation (Linux, Mac, Windows)
  • Zap est réutilisable
  • Peut générer des rapports
  • Idéal pour les débutants
  • Outil gratuit

Comment Fonctionne ZAP ?

ZAP crée un serveur proxy et fait passer le trafic du site Web par le serveur. L’utilisation de scanners automatiques dans ZAP permet d’intercepter les vulnérabilités sur le site Web.

Reportez-vous à cet organigramme pour mieux comprendre :

Organigramme ZAP

ZAP Terminologies

Avant de configurer la configuration ZAP, laissez-nous comprendre quelques terminologies ZAP :

#1) Session : Session signifie simplement naviguer sur le site Web pour identifier la zone d’attaque. À cette fin, tout navigateur comme Mozilla Firefox peut être utilisé en modifiant ses paramètres de proxy. Ou bien nous pouvons enregistrer zap session en tant que .session et peut être réutilisé.

#2) Contexte : il s’agit d’une application Web ou d’un ensemble d’URL ensemble. Le contexte créé dans le ZAP attaquera celui spécifié et ignorera le reste, pour éviter trop de données.

#3) Types d’attaques ZAP : vous pouvez générer un rapport de vulnérabilité à l’aide de différents types d’attaques ZAP en cliquant sur l’URL et en l’analysant.

Analyse active : Nous pouvons effectuer une analyse active en utilisant Zap de plusieurs façons. La première option est le Quick Start, qui est présent sur la page d’accueil de l’outil ZAP. Veuillez vous référer à la capture d’écran ci-dessous:

Démarrage rapide 1

Démarrage rapide 1

La capture d’écran ci-dessus montre le moyen le plus rapide de démarrer avec ZAP. Entrez l’URL sous l’onglet Démarrage rapide, appuyez sur le bouton Attaque, puis la progression démarre.

Quick Start exécute le spider sur l’URL spécifiée, puis exécute l’analyseur actif. Une araignée explore toutes les pages à partir de l’URL spécifiée. Pour être plus précis, la page de démarrage rapide est comme « pointer et tirer ».

Démarrage rapide 2

Démarrage rapide 2

Ici, lors de la définition de l’URL cible, l’attaque commence. Vous pouvez voir l’état de progression comme araignée de l’URL pour découvrir le contenu. Nous pouvons arrêter manuellement l’attaque si cela prend trop de temps.

Une autre option pour l’analyse active est que nous pouvons accéder à l’URL dans le navigateur proxy ZAP car Zap la détectera automatiquement. Lorsque vous faites un clic droit sur l’URL -> Analyse active se lancera. Une fois l’analyse terminée, l’analyse active démarre.

La progression de l’attaque sera affichée dans l’onglet Analyse active. et l’onglet Araignée affichera l’URL de la liste avec les scénarios d’attaque. Une fois l’analyse active terminée, les résultats seront affichés dans l’onglet Alertes.

Veuillez consulter la capture d’écran ci-dessous d’Active Scan 1 et Active Scan 2 pour une compréhension claire.

Analyse active 1

Analyse active1

Analyse active 2

Analyse active 2

#4) Spider: Spider identifie l’URL du site Web, vérifie les hyperliens et l’ajoute à la liste.

#5) Ajax Spider: Dans le cas où notre application fait un usage intensif de JavaScript, optez pour AJAX spider pour explorer l’application. J’expliquerai l’araignée Ajax en détail dans mon prochain tutoriel.

#6) Alertes : Les vulnérabilités du site Web sont signalées comme des alertes élevées, moyennes et faibles.

ZAP Installation

Maintenant, nous allons comprendre la configuration de l’installation ZAP. Tout d’abord, téléchargez le programme d’installation de Zap. Comme j’utilise Windows 10, j’ai téléchargé le programme d’installation de Windows 64 bits en conséquence.

Conditions préalables à l’installation de Zap : Java 7 est requis. Si Java n’est pas installé sur votre système, obtenez-le d’abord. Ensuite, nous pouvons lancer ZAP.

Configurer le navigateur ZAP

Tout d’abord, fermez toutes les sessions Firefox actives.

Lancez l’outil Zap >> allez dans le menu Outils >> sélectionnez les options >> sélectionnez Proxy local >> là, nous pouvons voir l’adresse comme localhost (127.0.0.1) et le port comme 8080, nous pouvons changer pour un autre port s’il utilise déjà, disons que je change pour 8099. Veuillez vérifier la capture d’écran ci-dessous:

Proxy local dans Zap 1

Proxy local dans ZAP

Maintenant, ouvrez Mozilla Firefox >> sélectionnez les options >>onglet d’avance >> sélectionnez Paramètres de connexion >> réseau >>sélectionnez l’option Configuration manuelle du proxy. Utilisez le même port que dans l’outil Zap. J’ai changé manuellement pour 8099 dans ZAP et utilisé la même chose dans le navigateur Firefox. Vérifiez ci-dessous la capture d’écran de la configuration de Firefox configurée en tant que navigateur proxy.

Configuration du proxy Firefox 1

Configuration de Firefox zap

Try to connect your application using your browser. Here, I have tried to connect Facebook and it says your connection is not secure. So you need to add an exception, and then confirm Security Exception for navigating to the Facebook page. Please refer the screenshots below:

Access webpage -proxy browser 1

Access webpage -proxybrowser1

Access webpage -proxy browser 2

Accéder à la page web -proxybrowser2

Accéder à la page Web -navigateur proxy 3

Accéder à la page Web -navigateur proxy3

Dans le même temps, sous l’onglet Sites de Zap, vérifiez la nouvelle session créée pour la page Facebook. Lorsque vous avez connecté votre application avec succès, vous pouvez voir plus de lignes dans l’onglet historique de ZAP.

Zap fournit normalement des fonctionnalités supplémentaires accessibles par des menus contextuels tels que,

Cliquez avec le bouton droit de la souris >> HTML >> analyse active, puis zap effectuera une analyse active et affichera les résultats.

Si vous ne parvenez pas à connecter votre application à l’aide du navigateur, vérifiez à nouveau vos paramètres de proxy. Vous devrez vérifier les paramètres du navigateur et du proxy ZAP.

Génération de rapports dans ZAP

Une fois l’analyse active terminée, nous pouvons générer des rapports. Pour cela, cliquez sur OWASP ZAP >> Report >> générer des rapports HTML >> chemin de fichier fourni >> rapport d’analyse exporté. Nous devons examiner les rapports pour identifier toutes les menaces possibles et les corriger.

Authentification ZAP, Gestion Des Sessions Et Des Utilisateurs

Passons à une autre fonctionnalité Zap, la gestion de l’authentification, de la session et de la gestion des utilisateurs. S’il vous plaît laissez-moi savoir toute question qui vous vient à l’esprit liée à cela comme commentaires.

Concepts de base

  • Contexte : il représente une application Web ou un ensemble d’URL ensemble. Pour un contexte donné, de nouveaux onglets sont ajoutés pour personnaliser et configurer le processus d’authentification et de gestion de session. Les options sont disponibles dans la boîte de dialogue des propriétés de session .i.e Boîte de dialogue Propriétés de session -> Contexte -> vous pouvez utiliser l’option par défaut ou ajouter un nouveau nom de contexte.
  • Méthode de gestion de session: Il existe 2 types de méthodes de gestion de session. La plupart du temps, la gestion de session basée sur les cookies est utilisée, associée au contexte.
  • Méthode d’authentification : Il existe principalement 3 types de méthode d’authentification utilisés par ZAP:
    • Méthode d’authentification basée sur un formulaire
    • Authentification manuelle
    • Authentification HTTP
  • Gestion des utilisateurs : Une fois le schéma d’authentification configuré, un ensemble d’utilisateurs peut être défini pour chaque contexte. Ces utilisateurs sont utilisés pour diverses actions (par exemple, URL araignée / Contexte en tant qu’utilisateur Y, envoyer toutes les demandes en tant qu’utilisateur X). Bientôt, d’autres actions seront fournies qui utilisent les utilisateurs.

Une extension « Utilisateur forcé » est implémentée pour remplacer l’ancienne extension d’authentification qui effectuait une nouvelle authentification. Un mode 'Forced-User' est désormais disponible via la barre d’outils (la même icône que l’ancienne extension d’authentification).

Après avoir défini un utilisateur comme 'Forced-User' pour un contexte donné ou lorsqu’il est activé, chaque requête envoyée via ZAP est automatiquement modifiée afin qu’elle soit envoyée pour cet utilisateur. Ce mode effectue également une ré-authentification automatique (en particulier en conjonction avec l’authentification basée sur les formulaires) s’il y a un manque d’authentification, « déconnecté » est détecté.

Voyons une démo:

Étape 1 :

Tout d’abord, lancez ZAP et accédez à l’URL dans le navigateur proxy. Ici, j’ai pris l’exemple d’URL comme https://tmf-uat.iptquote.com/login.php. Cliquez sur Avancé -> ajouter une exception -> confirmer l’exception de sécurité comme dans les pages 6 et 7. Ensuite, la page de destination s’affiche. Dans le même temps, ZAP charge automatiquement la page Web sous Sites en tant que nouvelle session. Reportez-vous à l’image ci-dessous.

Nouvelle session zap

Étape 2 :

Incluez-le dans un contexte. Cela peut être fait soit en l’incluant dans un contexte par défaut, soit en l’ajoutant en tant que nouveau contexte. Reportez-vous à l’image ci-dessous.

Étape 2

Étape 3 :

Maintenant, vient ensuite la méthode d’authentification. Vous pouvez voir Authentification dans cette boîte de dialogue des propriétés de session elle-même. Ici, nous utilisons la méthode Form-based Auth.

Il devrait être comme authMethodParams comme « login Url=https://tmf-uat.iptquote.com/login.php&loginRequestData=username=superadmin&password=primo868&proceed=login »;

Dans notre exemple, nous devons définir la méthode d’authentification comme basée sur un formulaire. Pour cela, sélectionnez l’URL cible, le champ de données de publication de la demande de connexion est pré-rempli, après cela, changez le paramètre comme nom d’utilisateur et mot de passe -> cliquez sur ok.

Étape 3

Step 4:

Now, set indicators that will tell ZAP when it is authenticated.

Logged in and logged out indicators:

  • Only one is necessary
  • We can set Regex patterns matched in the response message, need to set either logged in or log out indicator.
  • Identify when a response is authenticated or when not.
  • Example for Logged in indicator: \Qhttp://example/logout\E or Welcome User.*
  • Example of the Logged out indicator: login.jsp or something like that.

Here, in our demo application, I have accessed the URL in a proxy browser. Logged in to the application using a valid credential, Username as superadmin & Password as primo868. Navigate through inner pages and click on logout

You can see in Step 3 screenshot, Zap takes the login request data as one used for the TMF application login [Demo application login].

Flag logged in Regex pattern from the Response of ZAP as Response -> logged out response -> flag it as logged in the indicator.  Refer to the screenshot below

Step4

Étape 5 :

Nous pouvons enregistrer l’indicateur et vérifier si la boîte de dialogue des propriétés de session est ajoutée avec l’indicateur connecté ou non. Reportez-vous à la capture d’écran ci-dessous:

Étape 5

Étape 6 :

Nous devons ajouter des utilisateurs, des utilisateurs valides et invalides. Appliquez des attaques d’araignées aux deux et analysez les résultats.

Utilisateur valide :

Étape 6-Utilisateur valide

Utilisateur non valide :

Étape 6 -Utilisateur non valide

Étape 7 :

Par défaut, définissez la gestion de session comme une méthode basée sur les cookies.

Étape 7

Étape 8 :

L’attaque d’URL Spider est appliquée aux utilisateurs invalides et valides et examine les résultats / génère des rapports.

Vue d’attaque d’araignée utilisateur non valide 1 :

Étape 8 Utilisateur non valide

Ici, une attaque d’URL araignée est appliquée à l’utilisateur non valide. Dans l’interface ZAP, nous pouvons voir Get: login.php (erreur _message), ce qui signifie que l’authentification a échoué. De plus, il ne transmet pas les URL via les pages TMF internes.

Étape 9 :

Pour appliquer une attaque d’URL araignée à l’utilisateur valide, accédez à la liste des sites -attaque > -URL d’araignée > ->utilisateur valide existant -> ici, elle est activée par défaut -> démarrer l’analyse.

Analyser les résultats: Comme il s’agit d’un utilisateur authentifié valide, il naviguera dans toutes les pages internes et affichera l’état d’authentification comme réussi. Reportez-vous à la capture d’écran ci-dessous.

Utilisateur valide

Étape 9 utilisateur valide

Exemple De Rapport HTML ZAP

Une fois l’analyse active terminée, nous pouvons générer un rapport HTML pour la même chose. Pour cela, sélectionnez Rapport -> Générer un rapport HTML. J’ai joint un exemple de contenu de rapports HTML. Ici, des rapports d’alertes hautes, moyennes et basses seront générés.

Alertes

Alertes

Conclusion

Dans ce tutoriel, nous avons vu ce qu’est ZAP, comment fonctionne ZAP, l’installation et la configuration du proxy ZAP. Différents types de processus d’analyse active, une démonstration de l’authentification ZAP, de la gestion des sessions et des utilisateurs et des terminologies de base. Dans mon prochain tutoriel, j’expliquerai l’attaque des araignées Ajax, l’utilisation de fuzzers, les sites parcourus forcés.

Modifié le: mardi 31 octobre 2023, 04:51