Web Security Testing Guide

Une méthodologie pour les tests d’intrusions d’application Web.

Photo d’Alain Hanoul

Introduction

Lorsque nous parlons de sécurité d’application Web, nous avons toujours en tête l’OWASP TOP 10. Ces fameux classements des 10 vulnérabilités les plus critiques. Pourtant pour moi, le projet le plus intéressant à connaitre est le “Web Security Testing Guide” :

The Web Security Testing Guide (WSTG) Project produces the premier cybersecurity testing resource for web application developers and security professionals.

Comme son nom l’indique, c’est une méthodologie pour auditer une application Web. Elle se décompose en 11 thématiques pour regrouper l’ensemble des vulnérabilités. La présentation qui suit à pour but de faire connaître cette méthodologie, elle n’a pas pour rôle de la remplacer, ni de la traduire.


1. Information Gathering

(traduction: Collecte d’informations)

Présentation

Pour cette étape la recherche d’informations peut s’effectuer indirectement grâce aux moteurs de recherche. Elle peut aussi être direct grâce aux outils présents sur Kali. Elle doit permettre d’emmagasiner le plus d’information pour parfaire les autres étapes.

Exemples et commandes

Google:

site:url_de_ma_cible.com autre mot clef

Signature du serveur:

nmap -p80,443 -sV -O url_de_ma_cible.com
curl --head url_de_ma_cible.com

Enumération sur les urls:

dirsearch -e php,html,js -u https://url_de_ma_cible.com -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt 

2. Configuration and Deployment Management Testing

(traduction: Analyse de la gestion de la configuration et du déploiement)

Présentation

Pour cette étape il faut connaître les services pour déterminer les erreurs d’une configuration par défaut. Il faut aussi savoir comment fonctionne un déploiement pour déterminer quels sont les reliquats d’une installation.

Exemples et commandes

Enumération de vulnérabilité:

nikto -url https://url_de_ma_cible.com

3. Identity Management Testing

(traduction: Analyse de la gestion des identités)

Présentation

Pour cette étape il faut comprendre comment marche l’application. Sans cette connaissance, comprendre l’efficacité du cloisonnement est compliqué. Il faut aussi vérifier l’étanchainté de l’identité des utilisateurs.

Exemples et commandes

Cloisonnement des sessions

Module Autorize de BurpSuite

4. Authentication Testing

(traduction: Analyse de l’authentification)

Présentation

Pour cette étape il faut éplucher tous les mécanismes qui sont lié la confidentialité et l’intégrité de l’identification des utilisateurs.

Exemples et commandes

Injection SQL:


5. Authorization Testing

(traduction: Analyse des autorisations)

Présentation

Pour cette étape il faut vérifier que les fonctionnalités qui fournissent les ressources sont étanches.

Exemples et commandes

Directory Traversal Payload

Idor

for i in `seq 1 10`;
do
        wget https://url_de_ma_cible.com/id?or=$i
done

6. Session Management Testing

(traduction: Analyse des mécanismes qui gèrent la session)

Présentation

Pour cette étape il faut contrôler les variables de sessions, cookies, déconnexions, etc.

Exemples et commandes

Aléa des cookies

Module Sequencer de BurpSuite

7. Input Validation Testing

(traduction: Analyse des entrées envoyées aux serveurs)

Présentation

Pour cette étape, il y a un éventail de test à réaliser pour vérifier que la confiance accordée à l’utilisateur soit nul.

Exemples et commandes

Vous pouvez vous exercer sur la catégorie Web - Serveur de Root-Me pour cette partie.


8. Testing for Error Handling

(traduction: Analyse des erreurs renvoyées par le serveur)

Présentation

Pour cette étape, il faut provoquer des erreurs pour voir si les messages sont assainis.

Exemples et commandes

Modification des requêtes

Module Repeater de BurpSuite

9. Testing for Weak Cryptography

(traduction: Analyse de la cryptographie)

Présentation

Pour cette étape, il faut analyser les chiffrements derrière les communications. Il est aussi lié à d’autres éléments cryptographiques.

Exemples et commandes

testssl.sh

testssl.sh https://url_de_ma_cible.com

10. Business Logic Testing

(traduction: Analyse de la logique de l’application)

Présentation

Pour cette étape, il faut comprendre les mécanismes mis en place pour savoir si des contournements liés à ces mécanismes sont possibles.


11. Client-side Testing

(traduction: Analyse des entrées coté client)

Présentation

À l’instar de de la partie Input Validation Testing, il y a un certain nombre de tests à réaliser.

Exemples et commandes

Vous pouvez vous exercer sur la catégorie Web - Client de Root-Me pour cette partie.

David Perez
David Perez
Auditeur de sécurité technique

#auditor #cyber #insider