Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SealSecurity_Exam — Corriger la vulnérabilité de pollution de prototype (CVE-2023-26136) pour le package tough-cookie | Kitploit
Outils/GitHubGitHub/m-lito13/sealsecurity_exam
Analyse Statique de Code (SAST)Analyse des VulnérabilitésAnalyse de CodeSécurité WebApprentissage et Éducation
GitHubm-lito13/sealsecurity_exam

SealSecurity_Exam

Corriger la vulnérabilité de pollution de prototype (CVE-2023-26136) pour le package tough-cookie

Voir le dépôt
il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

SealSecurity_Exam

La pollution des prototypes est une vulnérabilité JavaScript qui permet à un attaquant d'ajouter des propriétés arbitraires aux prototypes d'objets globaux, lesquelles peuvent ensuite être héritées par des objets définis par l'utilisateur. Une source de pollution des prototypes est toute entrée contrôlable par l'utilisateur qui permet d'ajouter des propriétés arbitraires aux objets prototypes. Les sources les plus courantes sont les suivantes : URL JSON Messages Web

Pour le paquet tough-cookies (v2.5.0), la première via l'URL est plus pertinente. Cela se produit comme suit :

Voici une requête :

https://vulnerable-website.com/?__proto__[badProperty]=payload Lors de la décomposition de la chaîne de requête en paires clé:valeur, un analyseur d'URL peut interpréter proto comme une chaîne arbitraire. À un moment donné, l'opération de fusion récursive peut assigner la valeur d'evilProperty à l'aide d'une instruction équivalente à la suivante :

targetObject.__proto__.badProperty = 'payload';

__proto__ a un usage spécial en JavaScript. Comme nous le savons, si pour un objet une propriété P1 n'est pas trouvée, elle sera recherchée dans le prototype de cet objet.

Exemple

root@kitploit:~
function myClass() { 
  this.P1 = 'value';
} 
let mc = new myClass();
console.log(mc.P1); //Value 
console.log(mc.P2); //Undefined
mc.__proto__.P2 = 'value2';
let mc2 = new myClass();
console.log(mc.P2); //value2

Après avoir modifié __proto__, toutes les instances créées de myClass auront la propriété P2.

Pour le paquet tough-cookies (v2.5.0), cette vulnérabilité de pollution des prototypes peut être observée à partir de l'extrait de code suivant :

root@kitploit:~
await new Promise((resolve, reject) => {
            cookiejar.setCookie(
                "Slonser=polluted; Domain=__proto__; Path=/notauth",
                "https://__proto__/admin",
                { loose: true },
                (err, cookie) => {
                    if (err) {
                        reject(err);
                    } else {
                        resolve(cookie);
                    }
                }
            );
        });

Il a été constaté que la classe CookieJar utilise MemoryCookieStore comme magasin par défaut. Et dans plusieurs méthodes de MemoryCookieStore, les objets sont initialisés comme suit :

root@kitploit:~
this.idx = {}; 

Cela signifie que des propriétés avec des valeurs (qui peuvent être problématiques) peuvent être ajoutées au prototype de this.idx via __proto__. Pour éviter cela, l'initialisation a été modifiée à plusieurs endroits comme suit :

root@kitploit:~
this.idx = Object.create(null);

Cela crée un objet vide sans prototype. Un test a été ajouté memstore_vulnerability_fix_test.js vérifiant le correctif.

Télécharger l’outil