Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !
react2shell-detector — Une extension Chrome pour détecter les vulnérabilités React2Shell (CVE-2025-55182 & CVE-2025-66478) dans les applications web | Kitploit
Une extension Chrome pour détecter les vulnérabilités React2Shell (CVE-2025-55182 et CVE-2025-66478) dans les applications web.
Présentation
React2Shell Detector est une extension de navigateur qui aide les chercheurs en sécurité et les développeurs web à identifier les potentielles vulnérabilités React2Shell dans les applications web. L'extension envoie des charges utiles de détection sécurisées vers les URL cibles et analyse les réponses pour déterminer si l'application est vulnérable.
Ce projet est inspiré et basé sur le script Python react2shell-scanner d'Assetnote, réimplémenté en tant qu'extension Chrome pour faciliter le scan basé sur le navigateur.
Fonctionnalités
Scan en un clic : Scannez l'onglet actuel ou n'importe quelle URL en un seul clic
Détection sécurisée : Utilise des charges utiles non destructives pour la détection des vulnérabilités
Résultats détaillés : Visualisez les en-têtes HTTP, les corps de réponse et les détails des requêtes
Mode sombre : Bascule de thème intégrée pour un confort visuel
Interface moderne : Interface propre et réactive construite avec React et Tailwind CSS
Respect de la vie privée : Tout le scan se fait localement – aucune donnée n'est envoyée à des serveurs externes
Captures d'écran
Installation
Option 1 : Installer depuis le Chrome Web Store (Bientôt disponible)
L'extension sera bientôt disponible sur le Chrome Web Store.
Option 2 : Installer depuis les sources (Mode développeur)
git clone https://github.com/xiaopeng-ye/react2shell-detector.git
cd react2shell-detector
Installer les dépendances
root@kitploit:~
pnpm install
Construire l'extension
Pour le développement (avec rechargement à chaud) :
root@kitploit:~
pnpm dev
Pour la production :
root@kitploit:~
pnpm build
Charger l'extension dans Chrome
Ouvrir Chrome et naviguer vers chrome://extensions/
Activer le Mode développeur (bascule en haut à droite)
Cliquer sur Charger l'extension non empaquetée
Sélectionner le répertoire de construction :
Pour la version de développement : build/chrome-mv3-dev
Pour la version de production : build/chrome-mv3-prod
L'extension React2Shell Detector devrait maintenant apparaître dans votre liste d'extensions
Épingler l'extension (facultatif)
Cliquer sur l'icône en forme de puzzle dans la barre d'outils de Chrome
Trouver « React2Shell Detector » et cliquer sur l'icône d'épingle
L'icône de l'extension apparaîtra désormais dans votre barre d'outils
Utilisation
Ouvrir l'extension
Cliquer sur l'icône React2Shell Detector dans la barre d'outils Chrome
Ou utiliser le raccourci clavier (si configuré)
Scanner une URL
L'URL de l'onglet actuel est chargée automatiquement
Vous pouvez modifier l'URL ou en saisir une autre
Cliquer sur le bouton Scan
Consulter les résultats
Vulnérable : L'application peut être vulnérable aux attaques React2Shell
Sûr : Aucune vulnérabilité détectée
Erreur : Le scan a rencontré une erreur (problème réseau, délai d'attente, etc.)
Voir les détails
Cliquer sur les onglets Requête ou Réponse pour voir les informations détaillées
Consulter les en-têtes HTTP, les codes d'état et les corps de réponse
Pile technologique
Framework : Plasmo – Framework moderne d'extension de navigateur
Interface : React 18 avec TypeScript
Style : Tailwind CSS 4
Composants : Primitives Radix UI
Icônes : Lucide React
Thème : next-themes pour la prise en charge du mode sombre
Développement
Structure du projet
root@kitploit:~
react2shell-detector/
├── components/ # Composants React
│ ├── ui/ # Composants UI réutilisables
│ ├── ScanForm.tsx # Saisie d'URL et bouton de scan
│ ├── ScanResult.tsx # Affichage des résultats
│ └── ...
├── lib/ # Logique principale
│ ├── detector.ts # Logique de détection des vulnérabilités
│ ├── payload.ts # Génération des charges utiles
│ ├── types.ts # Définitions de types TypeScript
│ └── utils.ts # Fonctions utilitaires
├── styles/ # Styles globaux
├── popup.tsx # Point d'entrée de la popup de l'extension
├── background.ts # Service worker en arrière-plan
└── package.json # Configuration du projet
Commandes disponibles
root@kitploit:~
# Mode développement avec rechargement à chaud
pnpm dev
# Construction pour la production
pnpm build
# Empaquetage pour distribution
pnpm package
# Formater le code
pnpm prettier --write .
Style de code
Ce projet utilise Prettier avec les conventions suivantes :
La recherche en sécurité et les tests de pénétration autorisés
L'évaluation des vulnérabilités avec une autorisation appropriée
Les objectifs éducatifs
Les mesures de sécurité défensive
PAS pour :
Les tests ou scans non autorisés de systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas la permission de tester
Les activités malveillantes ou l'exploitation
Toute activité illégale
Obtenez toujours une autorisation appropriée avant de scanner une application web.
Contribution
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.
Forker le dépôt
Créer votre branche de fonctionnalité (git checkout -b feature/amazing-feature)
Commiter vos modifications (git commit -m 'Ajout d'une fonctionnalité géniale')
Pousser vers la branche (git push origin feature/amazing-feature)
Ouvrir une Pull Request
Références
React2Shell Scanner – Script Python original d'Assetnote (ce projet est basé sur leur travail)
CVE-2025-55182
CVE-2025-66478
Remerciements
Ce projet est construit sur l'excellente recherche et le travail d'Assetnote. La logique de détection principale est adaptée de leur script Python react2shell-scanner.
Licence
Ce projet est sous licence MIT – voir le fichier LICENSE pour plus de détails.
Avertissement
Cet outil est fourni à des fins éducatives et de tests de sécurité autorisés uniquement. Les auteurs et contributeurs ne sont pas responsables de toute utilisation abusive ou de tout dommage causé par cet outil. Assurez-vous toujours d'avoir l'autorisation appropriée avant de scanner une application web.
Assistance
Si vous rencontrez des problèmes ou avez des questions :