Guide Red TeamTests d’intrusion autorisés · Red Team · Purple Team
Domaines
Web — vulnérabilités complémentaires · domaine V13

Web — vulnérabilités complémentaires

Référence pratique pour les vulnérabilités web qui complètent les domaines SQL, XSS, API et serveur : logique métier, navigateurs, caches, proxys, formats et chaînes de livraison. Le contrôle est ici appliqué spécifiquement à « Web — vulnérabilités complémentaires ».

En bref

  • Objectif : Référence pratique pour les vulnérabilités web qui complètent les domaines SQL, XSS, API et serveur : logique métier, navigateurs, caches, proxys, formats et chaînes de livraison.
  • Méthode : progresser de l’inventaire vers une validation limitée, puis documenter la correction et le retest.
  • Sécurité : utiliser uniquement des actifs détenus ou explicitement couverts par le mandat.
Architecture du domaine Web — vulnérabilités complémentaires
Organisation du domaine « Web — vulnérabilités complémentaires » autour des contrôles et livrables essentiels.

Chapitres

Fuites de clés API et secrets

Repérer les secrets exposés dans le code, les artefacts de build et les réponses applicatives sans utiliser les identifiants découverts.

Prise de contrôle de compte : chemins et contrôles

Cartographier les parcours permettant de prendre le contrôle d’un compte de test : récupération, changement d’adresse, sessions et fédération.

Limitation de débit et protection contre la force brute

Vérifier que les mécanismes d’authentification limitent les tentatives sans provoquer de déni de service sur les comptes.

Erreurs de logique métier

Tester les règles métier et les transitions d’état que les scanners techniques comprennent mal.

CORS : origines, credentials et prévol

Évaluer les réponses CORS et confirmer qu’une origine non approuvée ne peut pas lire des données authentifiées.

Injection CRLF et séparation des en-têtes

Vérifier que les entrées ne permettent pas d’injecter des retours ligne dans les en-têtes HTTP ou les journaux.

Injection CSS

Déterminer si une entrée contrôlée peut modifier la feuille de style, masquer une information ou déclencher des requêtes indésirables.

Injection de formules CSV

Contrôler que les exports CSV neutralisent les cellules interprétées comme formules par un tableur.

Clickjacking et intégration en iframe

Vérifier qu’une interface sensible ne peut pas être superposée dans une iframe contrôlée par un tiers.

Path traversal côté client

Analyser les chemins construits dans le navigateur avant une requête fetch, import ou navigation.

CSRF et actions authentifiées

Vérifier qu’une action sensible ne peut pas être déclenchée par un site tiers avec la session de la victime.

DNS rebinding et validation de destination

Vérifier qu’une application qui contacte une URL fournie par l’utilisateur valide la destination après chaque résolution DNS.

DOM clobbering

Comprendre comment des éléments HTML nommés peuvent remplacer des propriétés globales ou modifier une logique JavaScript.

Dependency confusion et registres de paquets

Vérifier qu’un pipeline ne télécharge pas un paquet public homonyme à la place d’un composant interne.

Encodages, normalisation et doubles décodages

Identifier les différences de décodage entre proxy, framework, WAF et application.

Modification de variables externes

Vérifier si des paramètres, en-têtes ou variables de configuration peuvent modifier une décision de sécurité.

HTTP Parameter Pollution

Observer la manière dont les couches traitent plusieurs occurrences du même paramètre.

Navigateurs headless et automatisation serveur

Évaluer les services qui rendent du contenu avec Chrome/Playwright/Puppeteer côté serveur.

Paramètres cachés et fonctionnalités non documentées

Découvrir les paramètres acceptés mais absents de l’interface ou de la documentation.

IDOR et contrôle d’autorisation objet

Vérifier qu’un utilisateur ne peut pas lire ou modifier l’objet d’un autre compte en changeant un identifiant.

Interfaces d’administration exposées

Identifier les consoles, pages de diagnostic et interfaces de gestion accessibles hors du réseau prévu.

Aléas insuffisants et jetons prévisibles

Évaluer la qualité et le cycle de vie des jetons de session, reset et invitation.

Injection LDAP

Vérifier que les entrées ne modifient pas la structure d’un filtre LDAP.

Injection LaTeX

Contrôler les systèmes qui compilent du contenu utilisateur en PDF ou document scientifique.

Mass assignment et binding automatique

Vérifier qu’un client ne peut pas définir des propriétés internes en ajoutant des champs à une requête.

ORM leak et exposition de données

Identifier les réponses qui sérialisent plus d’attributs que nécessaire ou révèlent la structure du modèle.

Redirections ouvertes

Vérifier qu’un paramètre de retour ne permet pas de rediriger vers un domaine externe non approuvé.

Prototype pollution JavaScript

Vérifier si des clés contrôlées modifient Object.prototype ou des options partagées.

Conditions de course

Tester les opérations sensibles exécutées simultanément : coupon, stock, transfert ou validation.

Expressions régulières et ReDoS

Identifier les regex à backtracking catastrophique sans provoquer d’indisponibilité.

Désynchronisation HTTP et request smuggling

Vérifier les divergences de parsing entre frontal et serveur sans envoyer de requête vers d’autres utilisateurs.

Mauvaises configurations de reverse proxy

Évaluer les règles de routage, les en-têtes de confiance, la normalisation et les routes internes.

Server-Side Includes (SSI)

Vérifier si un serveur interprète des directives SSI dans un contenu contrôlé.

Tabnabbing et liens target=_blank

Vérifier qu’une page ouverte dans un nouvel onglet ne peut pas remplacer la page d’origine.

Type juggling et comparaisons faibles

Identifier les conversions implicites qui transforment une comparaison de sécurité.

Virtual hosts et routage Host

Découvrir les hôtes virtuels prévus dans le périmètre et vérifier le comportement du site par défaut.

Web cache deception

Vérifier qu’une réponse privée ne peut pas être stockée sous une URL ressemblant à une ressource statique.

WebSockets : authentification et autorisation

Évaluer le handshake, la session et l’autorisation de chaque message WebSocket.

Injection XPath

Vérifier que les entrées ne modifient pas une requête XPath utilisée pour rechercher des objets XML.

XS-Leaks et canaux latéraux navigateur

Identifier les différences observables entre états authentifiés sans lire directement la réponse.

Injection XSLT

Contrôler les applications qui appliquent une feuille XSLT fournie ou modifiable par l’utilisateur.

Zip Slip et extraction d’archives

Vérifier qu’une archive ne peut pas écrire en dehors du répertoire d’extraction prévu.

Méthode de lecture

  1. Commencer par les chapitres de préparation et d’inventaire.
  2. Exécuter les commandes sur une cible de laboratoire avec une limite de débit explicite.
  3. Conserver les versions, requêtes, sorties et captures utiles.
  4. Valider manuellement les résultats avant de conclure.
  5. Terminer par la correction, le nettoyage et le retest.

Objectifs et compétences du domaine

Le domaine « Web — vulnérabilités complémentaires » regroupe les compétences nécessaires pour préparer, exécuter et restituer les contrôles associés. Il ne doit pas être lu comme une suite d’outils indépendants : les chapitres décrivent un même workflow, depuis le cadrage jusqu’au retest.

La lecture recommandée commence par les concepts et l’architecture, continue avec l’installation ou la prise en main, puis se termine par les exercices, l’interprétation et la remédiation. Dans ce domaine, la qualité dépend surtout de la requête de référence, le point d’entrée modifié, le contexte d’encodage et les différences entre réponse normale et réponse testée.

  • Expliquer les mécanismes essentiels du domaine « Web — vulnérabilités complémentaires ».
  • Préparer un laboratoire cohérent et limité au périmètre autorisé.
  • Choisir l’outil ou la technique en fonction de la question posée.
  • Conserver des preuves reproductibles et compréhensibles.
  • Transformer les constats en corrections et critères de retest.

Parcours de lecture recommandé

Le parcours ci-dessous évite de commencer directement par les commandes. Pour « Web — vulnérabilités complémentaires », il est préférable de comprendre les préconditions, d’effectuer un inventaire de base et seulement ensuite d’utiliser les outils spécialisés.

  1. Lire d’abord la définition, le périmètre et les limites du domaine.
  2. Installer ou vérifier les outils dans une VM ou un conteneur dédié.
  3. Réaliser l’exercice le plus simple avec une sortie attendue connue.
  4. Comparer les résultats avec une seconde source ou une vérification manuelle.
  5. Étudier les erreurs fréquentes avant d’augmenter la portée ou le débit.
  6. Terminer par le reporting, le nettoyage et le retest.

Points de vigilance

Les points suivants doivent rester visibles pendant toute mission portant sur « Web — vulnérabilités complémentaires ». Ils évitent les conclusions trop rapides et les actions inutiles.

  • Vigilance — tester plusieurs paramètres en même temps.
  • Vigilance — confondre erreur applicative et vulnérabilité.
  • Vigilance — laisser le scanner sortir du périmètre.
  • Vigilance — ne pas tenir compte de l’authentification ou du rôle.
  • Vigilance — documenter un payload sans expliquer pourquoi il démontre le problème.

Ce qu’un bon livrable doit contenir

Le livrable du domaine « Web — vulnérabilités complémentaires » doit permettre à une équipe technique de reproduire l’observation et à un responsable de comprendre le risque sans relire toutes les sorties d’outil.

  • le périmètre et les exclusions ;
  • les versions, comptes et configurations de test ;
  • la méthode et les paramètres réellement utilisés ;
  • les preuves brutes et leur interprétation ;
  • les limites et hypothèses ;
  • la recommandation, le responsable et le critère de retest.

Références

Chaque chapitre cite ses sources officielles et le corpus documentaire utilisé.