Web Security Testing Guide
Une méthodologie pour les tests d’intrusions d’application Web.
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:
- http://github.com/payloadbox/sql-injection-payload-list/blob/master/Intruder/exploit/Auth_Bypass.txt
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.