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.
Chapitres
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ôlesCartographier 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 bruteVérifier que les mécanismes d’authentification limitent les tentatives sans provoquer de déni de service sur les comptes.
Erreurs de logique métierTester 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êtesVérifier que les entrées ne permettent pas d’injecter des retours ligne dans les en-têtes HTTP ou les journaux.
Injection CSSDé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 CSVContrôler que les exports CSV neutralisent les cellules interprétées comme formules par un tableur.
Clickjacking et intégration en iframeVérifier qu’une interface sensible ne peut pas être superposée dans une iframe contrôlée par un tiers.
Path traversal côté clientAnalyser les chemins construits dans le navigateur avant une requête fetch, import ou navigation.
CSRF et actions authentifiéesVé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 destinationVérifier qu’une application qui contacte une URL fournie par l’utilisateur valide la destination après chaque résolution DNS.
DOM clobberingComprendre comment des éléments HTML nommés peuvent remplacer des propriétés globales ou modifier une logique JavaScript.
Dependency confusion et registres de paquetsVérifier qu’un pipeline ne télécharge pas un paquet public homonyme à la place d’un composant interne.
Encodages, normalisation et doubles décodagesIdentifier les différences de décodage entre proxy, framework, WAF et application.
Modification de variables externesVérifier si des paramètres, en-têtes ou variables de configuration peuvent modifier une décision de sécurité.
HTTP Parameter PollutionObserver 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éesDécouvrir les paramètres acceptés mais absents de l’interface ou de la documentation.
IDOR et contrôle d’autorisation objetVérifier qu’un utilisateur ne peut pas lire ou modifier l’objet d’un autre compte en changeant un identifiant.
Interfaces d’administration exposéesIdentifier 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 LDAPVérifier que les entrées ne modifient pas la structure d’un filtre LDAP.
Injection LaTeXContrôler les systèmes qui compilent du contenu utilisateur en PDF ou document scientifique.
Mass assignment et binding automatiqueVé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éesIdentifier les réponses qui sérialisent plus d’attributs que nécessaire ou révèlent la structure du modèle.
Redirections ouvertesVérifier qu’un paramètre de retour ne permet pas de rediriger vers un domaine externe non approuvé.
Prototype pollution JavaScriptVérifier si des clés contrôlées modifient Object.prototype ou des options partagées.
Conditions de courseTester les opérations sensibles exécutées simultanément : coupon, stock, transfert ou validation.
Expressions régulières et ReDoSIdentifier les regex à backtracking catastrophique sans provoquer d’indisponibilité.
Désynchronisation HTTP et request smugglingVé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=_blankVérifier qu’une page ouverte dans un nouvel onglet ne peut pas remplacer la page d’origine.
Type juggling et comparaisons faiblesIdentifier les conversions implicites qui transforment une comparaison de sécurité.
Virtual hosts et routage HostDécouvrir les hôtes virtuels prévus dans le périmètre et vérifier le comportement du site par défaut.
Web cache deceptionVé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 XPathVé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 navigateurIdentifier les différences observables entre états authentifiés sans lire directement la réponse.
Injection XSLTContrôler les applications qui appliquent une feuille XSLT fournie ou modifiable par l’utilisateur.
Zip Slip et extraction d’archivesVérifier qu’une archive ne peut pas écrire en dehors du répertoire d’extraction prévu.
Méthode de lecture
- Commencer par les chapitres de préparation et d’inventaire.
- Exécuter les commandes sur une cible de laboratoire avec une limite de débit explicite.
- Conserver les versions, requêtes, sorties et captures utiles.
- Valider manuellement les résultats avant de conclure.
- Terminer par la correction, le nettoyage et le retest.
Références
Chaque chapitre cite ses sources officielles et le corpus documentaire utilisé.