---
title: 'Présentation OWASP ZAP '
disqus: hackmd
authors: 'Allenet Brice - Nathaniel Subias - Quentin Lemauf'
---
Présentation de l'outil OWASP ZAP
===
Brice Allenet e2101070
Nathaniel Subias e2103773
Quentin Lemauf e2104026

## Sommaire
[TOC]
## Introduction
OWASP Zed Attack Proxy, également connu sous le nom de ZAP, est un outil de test de sécurité conçu pour évaluer la robustesse d'un site web. ZAP,est un logiciel libre, qui agit en tant que proxy man-in-the-middle. Il s'insère entre le navigateur de l'analyste de sécurité et l'application web cible, interceptant et inspectant les messages échangés entre eux. Si nécessaire, il peut également modifier le contenu de ces messages avant de les transmettre à leur destination.
Cet outil peut donc être utilisé par des développeurs qui souhaitent débugger leur application, ou par des chercheurs en sécurité en quête de vulnérabilités. ZAP est fourni avec de nombreux plug-ins (il y a même une marketplace) et permet de faire au choix du scan automatique ou du scan manuel mieux calibré.
## Téléchargement, installation et configuration
### Installation sur Linux
**Kali Linux**
**Étape 1 :** Mise à jour de votre système Linux
Avant d'installer OWASP ZAP, il est essentiel de mettre à jour votre système afin de vous assurer que vous disposez des derniers paquets et correctifs de sécurité. Pour mettre à jour votre système, ouvrez le terminal :
```
sudo apt-get update
```
**Etape 2 :** Installation de OWASP
Une fois que votre système est à jour, vous pouvez installer OWASP ZAP. Pour ce faire, tapez la commande suivante dans le terminal :
```
sudo apt install zaproxy
```
**Etape 3 :** Lancement de l'application
L'aplication peut ensuite être lancée simplement à l'aide de la commande suivante :
```
zaproxy
```
**Autres distributions**
Pour les autres distributions, il est possible de l'installer via le site officiel. Pour cela se rentre sur la page de téléchargement officielle : https://www.zaproxy.org/download/
**Étape 1 :** Télécharger l'installer linux

**Étape 2 :** Exécuter l'installer linux

**Étape 3 :** Exécuter l'application
Il est ensuite possible d'exécuter l'application en utilisant la commande suivante :
```
zap.sh
```
### Installation sur Windows
Se rendre sur la page de téléchagement officielle: https://www.zaproxy.org/download/
Télécharger la version adapté:

Ouvrer l'éxécutable et suiver les étapes jusqu'à la fin:

| | |
| -------- | -------- |
Ouvrir l'application sur votre ordinateur

Félicitations, vous avez bien télécharger et installer OWASP ZIP sur votre ordinateur !
## Sources et références utiles
Afin de faciliter l'utilisation de l'applicaiton nous avons référencé différentes sources et références utiles qui décrivent le fonctionnement de l'application.
| Type | Description | Lien |
| ------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Documentation | Page de documentation officielle de l'application | https://www.zaproxy.org/docs/ |
| Documentation | Présentation constructeur de l'application | https://owasp.org/www-chapter-dorset/assets/presentations/2020-01/20200120-OWASPDorset-ZAP-DanielW.pdf |
| Tutorial | Tutoriel de detection de vulnérabilités grâce à l'application | https://toobler.medium.com/zap-penetration-testing-a-simple-tutorial-to-detect-vulnerabilities-e9a8311182a9 |
| Article | Présentation de l'application et de ses fonctionnalités |https://www.encora.com/insights/how-to-leverage-owasp-zap-to-increase-application-security|
## Cas d'usage
OWASP ZAP peut être utilisé dans beaucoup de contextes et de différentes manières. Pour mieux comprendre ce fonctionnement voici quelques cas d'usage de l'application.
1. **Test de Sécurité Automatisé :** ZAP peut être configuré pour effectuer des tests de sécurité automatisés sur une application web. Il identifie les vulnérabilités courantes telles que les failles de sécurité SQL, les injections de code, les failles de sécurité XSS, etc. L'automatisation permet de réaliser des scans réguliers pour détecter les vulnérabilités au fur et à mesure de l'évolution de l'application.
2. **Détection de Vulnérabilités :** ZAP est particulièrement efficace pour détecter divers types de vulnérabilités dans les applications web, y compris les problèmes liés à la gestion des sessions, les erreurs de configuration du serveur, et les faiblesses dans les contrôles d'accès.
3. **Tests Manuels :** Il est possible d'utiliser ZAP pour des tests manuels approfondis. Cela permet d'explorer les vulnérabilités spécifiques qui pourraient ne pas être détectées automatiquement, ainsi que de simuler des attaques plus ciblées.
4. **Débogage des Applications :** Les développeurs peuvent utiliser ZAP pour déboguer leurs applications web. En examinant les requêtes et les réponses entre le navigateur et le serveur, ils peuvent identifier et résoudre les problèmes de développement.
5. **Validation de la Conformité :** ZAP peut être utilisé pour vérifier la conformité des applications web aux normes de sécurité spécifiques, telles que les recommandations de l'OWASP.
## Test d'attaque
Pour effectuer des tests d'attaques et tester l'outil, nous allons utiliser le projet WebGoat: C'est une machine volontairement vulnérable pour effectuer des tests d'outil de sécurité web, comme BurpSuite ou ZAP.
https://owasp.org/www-project-webgoat/
Pour l'installer il suffit d'utiliser Docker, on effectue d'abord le téléchargement
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat
On se retrouve maintenant sur ZAP pour effectuer nos scans de vulnérabilité.
On a désormais deux choix pour effectuer les tests de sécurité:

### Scan automatique

Le scan automatique permet de lancer "automatiquement" la série de scan. Le spider qui permet d'énumérer tous les fichiers d'une applicationweb vas alors parcourir la cible. On pourra ensuite retrouvre les vulnérabilités trouvées dans l'application avec un accès au détail si nécessaire.
Suite à cette attaque automatique, nous retrouvons des vulnérabilités vulnérabilité qui seront listées dans l'onglet Alertes:

ZAP nous permet d'effectuer un scan, pour cela il va lister toutes les pages trouvées:

Nous pourrons ensuite aller voir plus en détails le code contenu dans celles-ci et ce que l'on peut en faire.
### Scan manuel

Le scan manuel permet de réaliser la même chose que le scan automatique mais de façon plus fine, il est possible de parcourir l'application à scanner directement via son navigateur de de détecter les vulnérabilités à la volée.
On peut ainsi ouvrir, directement dans notre navigateur, une page qui nous permet d'agir directement sur la page. Cela en effectuant des scans, balayage, tests basique.

On peut ensuite retrouver les vulnérabilités citées, ainsi que où celles-ci se trouvent.
Ici nous avons deux Injection SQL qui se trouve sur la page
```
http://127.0.0.1:8080/WebGoat/register.mvc
```

On peut les voir en fonction de leur criticité.
La section `info` contient des informations supplémentaires sur des bugs ayant des impacts restreints.

Nous pouvons également effectuer un rapport complet à la fin. Dans notre cas, nous l'avons fait en html.la section info contient des informations supplémentaires sur des bugs ayant des impacts restreints.moo