Icône du lab

Prototype Pollution Hunter

Pouvez-vous polluer la chaîne de prototypes pour briser la sécurité de l'application ?

Défi Mis à jour le 21 juin 2026 Solution (Pro)
Prototype Pollution Node.js Security API Security JavaScript Exploitation Object Manipulation Input Validation Bypass Modern Web Vulnerabilities

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 !

1
Flags
50
XP
50%
Taux de Réussite

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

JavaScript fundamentals Understanding of REST APIs Basic knowledge of Node.js and npm

Prêt à hacker ce lab ?

Créez un compte gratuit et pratiquez la cybersécurité.

Commencer - C'est gratuit
Commencez Votre Défi
~1-2 min de configuration
Serveur dédié
Instance privée
Puissance standard
Nouveau ? Voici comment faire
1
Cliquez sur "Start Lab" ci-dessus Vous obtiendrez votre propre machine avec une adresse IP
2
Explorez la cible Ouvrez l'IP dans votre navigateur et cherchez des vulnérabilités
3
Trouvez et soumettez les flags Les flags sont des textes secrets cachés dans le système - collez-les ci-dessous pour marquer des XP

Prêt à hacker ce lab?

Créez un compte gratuit pour démarrer votre propre serveur dédié, soumettre des flags et gagner des XP au classement.

Commencer à Hacker Gratuitement
13 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement