Défi Sécurité Web & API +50 XP

Prototype Pollution Hunter

Cette API Node.js de pointe gère la configuration utilisateur avec une fusion d'objets sophistiquée, mais une faille subtile dans la gestion des propriétés crée un vecteur d'attaque dangereux. Les applications modernes s'appuient fortement sur la manipulation dynamique d'objets, faisant du prototype pollution l'une des vulnérabilités les plus critiques dans les environnements JavaScript. Maîtrisez cette technique d'exploitation avancée et découvrez comment une seule propriété malveillante peut compromettre l'ensemble du modèle de sécurité d'une application !

61 % le résolvent 31 hackers ont joué 1 flag Mis à jour le 06 oct. 2026 First blood
Prototype PollutionNode.js SecurityAPI SecurityJavaScript ExploitationObject ManipulationInput Validation Bypass
Commencez Votre Défi
  1. 1Créez un compte gratuit, puis cliquez sur « Démarrer le Lab »Vous obtiendrez votre propre machine avec une adresse IP
  2. 2Explorez la cibleOuvrez l'IP dans votre navigateur et cherchez des vulnérabilités
  3. 3Trouvez et soumettez les flagsLes flags sont des textes secrets cachés dans le système - collez-les ci-dessous pour marquer des XP
  • ~1-2 min de configuration
  • Instance privée
  • 30 min par session. Relancez-la gratuitement, autant de fois que vous voulez.

Le prototype pollution est une vulnérabilité critique de JavaScript qui permet aux attaquants de modifier le prototype des objets de base, affectant potentiellement chaque objet d'une application. À mesure que les applications web modernes s'appuient de plus en plus sur des frameworks JavaScript complexes et des backends Node.js, la compréhension du prototype pollution est devenue essentielle pour les professionnels de la sécurité et les développeurs.

Comment fonctionnent les prototypes JavaScript

JavaScript utilise un modèle d'héritage basé sur les prototypes. Chaque objet possède un lien interne vers un autre objet appelé son prototype, formant une chaîne de prototypes qui mène ultimement à Object.prototype. Lorsqu'une propriété est accédée sur un objet, JavaScript vérifie d'abord l'objet lui-même, puis parcourt la chaîne de prototypes jusqu'à ce que la propriété soit trouvée ou que la chaîne se termine. Ce mécanisme d'héritage est puissant mais crée un risque de sécurité significatif lorsque les attaquants peuvent manipuler la chaîne de prototypes.

Comprendre les attaques par prototype pollution

Le prototype pollution se produit lorsqu'un attaquant peut injecter des propriétés dans Object.prototype à travers des modèles de code vulnérables. Le vecteur d'attaque le plus courant implique des fonctions de fusion récursive d'objets ou de copie profonde qui ne nettoient pas correctement les clés de propriétés. Lorsque l'entrée contrôlée par l'utilisateur contient des clés comme __proto__ ou constructor.prototype, l'opération de fusion écrit dans le prototype au lieu de l'objet cible. Cela signifie que chaque objet de l'application hérite des propriétés polluées, ce qui peut potentiellement remplacer les vérifications de sécurité, permettre l'escalade de privilèges ou provoquer un déni de service.

Impact réel du prototype pollution

Des vulnérabilités de prototype pollution ont été découvertes dans des packages npm largement utilisés, notamment lodash, jQuery et express-fileupload. Dans des attaques réelles, le prototype pollution a été combiné avec d'autres vulnérabilités pour obtenir l'exécution de code à distance dans des applications Node.js. Les scénarios d'exploitation courants incluent le contournement de l'authentification en polluant les propriétés isAdmin, la manipulation de moteurs de templates pour obtenir l'exécution de code côté serveur et l'empoisonnement d'objets de configuration d'application. Les chercheurs en sécurité et les testeurs d'intrusion doivent comprendre comment identifier et exploiter le prototype pollution pour évaluer efficacement les applications JavaScript modernes.

Ce que vous apprendrez

  • Comprendre l'héritage basé sur les prototypes de JavaScript et la chaîne de prototypes
  • Apprendre comment les fonctions de fusion récursive et de copie profonde créent des vulnérabilités de prototype pollution
  • Pratiquer l'exploitation du prototype pollution pour contourner les contrôles d'accès dans les API Node.js
  • Reconnaître les clés de propriétés dangereuses comme __proto__ et constructor.prototype
  • Étudier les cas réels de prototype pollution et leur impact sur les applications web

Prérequis

Fondamentaux de JavaScript Compréhension des API REST Connaissances de base de Node.js et npm