Méthodologie des vulnérabilités Web

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Dans chaque Web Pentest, il existe plusieurs endroits cachés et évidents qui pourraient être vulnérables. Ce document sert de liste de contrôle pour confirmer que vous avez recherché des vulnérabilités dans tous les emplacements possibles.

Proxies

Tip

De nos jours, les web applications utilisent généralement une sorte de proxies intermédiaires ; ceux-ci peuvent être (ab)usés pour exploiter des vulnérabilités. Ces vulnérabilités nécessitent la présence d’un proxy vulnérable, mais demandent généralement aussi une vulnérabilité supplémentaire dans le backend.

Entrée utilisateur

Tip

La plupart des applications web permettront aux utilisateurs d’entrer des données qui seront traitées plus tard.
Selon la structure des données attendue par le serveur, certaines vulnérabilités peuvent s’appliquer ou non.

Reflected Values

Si les données introduites peuvent d’une manière ou d’une autre être reflétées dans la réponse, la page peut être vulnérable à plusieurs problèmes.

Certaines des vulnérabilités mentionnées requièrent des conditions particulières, d’autres nécessitent simplement que le contenu soit reflété. Vous pouvez trouver quelques polygloths intéressants pour tester rapidement les vulnérabilités dans :

Reflecting Techniques - PoCs and Polygloths CheatSheet

Fonctionnalités de recherche

Si la fonctionnalité peut être utilisée pour rechercher des données dans le backend, vous pouvez éventuellement l’(ab)user pour rechercher des données arbitraires.

Forms, WebSockets and PostMsgs

Quand un websocket publie un message ou qu’un formulaire permet aux utilisateurs d’effectuer des actions, des vulnérabilités peuvent apparaître.

Cross-site WebSocket hijacking & localhost abuse

Les upgrades WebSocket transmettent automatiquement les cookies et n’empêchent pas ws://127.0.0.1, donc n’importe quelle origine web peut piloter des endpoints IPC desktop qui contournent la validation Origin. Lorsque vous repérez un launcher exposant une API de type JSON-RPC via un agent local :

  • Observez les frames émises pour cloner les tuples type/name/args requis par chaque méthode.
  • Bruteforcez le port d’écoute directement depuis le navigateur (Chromium gérera ~16k d’échecs d’upgrade) jusqu’à ce qu’une socket loopback réponde avec la bannière du protocole — Firefox a tendance à crasher rapidement sous la même charge.
  • Enchaînez une paire create → privileged action : par exemple, invoquez une méthode create* qui renvoie un GUID et appelez immédiatement la méthode correspondante *Launch* avec des payloads contrôlés par l’attaquant.

Si vous pouvez passer des flags JVM arbitraires (comme AdditionalJavaArguments), forcez une erreur avec -XX:MaxMetaspaceSize=<tiny> et attachez -XX:OnOutOfMemoryError="<cmd>" pour exécuter des commandes OS sans toucher la logique applicative. Voir WebSocket attacks pour un guide pas à pas.

HTTP Headers

Selon les en-têtes HTTP fournis par le serveur web, certaines vulnérabilités peuvent être présentes.

Bypasses

Il existe plusieurs fonctionnalités spécifiques où des contournements peuvent être utiles pour les bypasser

Objets structurés / Fonctionnalités spécifiques

Certaines fonctionnalités nécessiteront que les données soient structurées dans un format très spécifique (comme un objet sérialisé d’un langage ou XML). Par conséquent, il est plus facile d’identifier si l’application peut être vulnérable car elle doit traiter ce type de données.
Certaines fonctionnalités spécifiques peuvent aussi être vulnérables si un format spécifique de l’entrée est utilisé (comme Email Header Injections).

Files

Les fonctionnalités qui permettent l’upload de fichiers peuvent être vulnérables à plusieurs problèmes.
Les fonctionnalités qui génèrent des fichiers en incluant des données utilisateur peuvent exécuter du code inattendu.
Les utilisateurs qui ouvrent des fichiers téléversés par d’autres utilisateurs ou générés automatiquement contenant des données utilisateur peuvent être compromis.

External Identity Management

Autres vulnérabilités utiles

Ces vulnérabilités peuvent aider à exploiter d’autres vulnérabilités.

Web Servers & Middleware

Les mauvaises configurations dans la stack edge débloquent souvent des bugs plus impactants au niveau applicatif.

Application Frameworks & Stacks

Les primitives spécifiques aux frameworks exposent fréquemment des gadgets, des valeurs par défaut dangereuses ou des endpoints gérés par le framework.

CMS, SaaS & Managed Platforms

Les produits à large surface embarquent souvent des exploits connus, des plugins faibles ou des endpoints admin privilégiés.

APIs, Buckets & Integrations

Les helpers côté serveur et les intégrations tierces peuvent exposer des faiblesses dans le parsing fichier ou la couche de stockage.

Supply Chain & Identifier Abuse

Les attaques ciblant les pipelines de build ou des identifiants prédictibles peuvent devenir le point d’appui initial avant d’exploiter des bugs traditionnels.

Web3, Extensions & Tooling

Les applications modernes s’étendent aux navigateurs, wallets et pipelines d’automatisation — gardez ces vecteurs en scope.

Références

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks