
Framework d'évaluation de sécurité en ligne de commande pour les applications React et Next.js, analysant les composants serveur React pour détecter les mauvaises configurations, avec analyse multi-cibles, détection de WAF et prise en charge des proxys.
Framework d'évaluation de la sécurité des applications web pour les applications React et Next.js
Cet outil est conçu uniquement pour les tests de sécurité autorisés.
Les utilisateurs sont seuls responsables du respect de toutes les lois applicables.
React2Shell Scanner est un framework d'évaluation de la sécurité en ligne de commande conçu pour aider les professionnels de la sécurité à identifier les vulnérabilités potentielles dans les applications web React et Next.js. Il se concentre sur l'analyse des implémentations de React Server Components (RSC) pour détecter les erreurs de configuration de sécurité courantes.
| Fonctionnalité | Description |
|---|---|
| 🎯 Analyse multi-cibles | Analyser des URL uniques ou des listes de cibles |
| 🔄 Tests concurrents | Multithread pour une évaluation efficace |
| 🛡️ Détection WAF | Identifier et analyser les réponses WAF |
| 📊 Suivi de progression | Barre de progression visuelle avec tqdm |
| 🔧 En-têtes configurables | Injection d'en-têtes personnalisés |
| 🌐 Support proxy | Routage via des proxys HTTP/HTTPS |
| 📝 Formats de sortie | Génération de rapports JSON et texte |
| 🎨 CLI coloré | Sortie terminal claire et codée par couleur |
# Cloner le dépôt
git clone https://github.com/wi3memake/React2Shell-Scanner.git
cd react2shell-scanner
# Créer un environnement virtuel (recommandé)
python -m venv venv
source venv/bin/activate # Linux/Mac
.\venv\Scripts\activate # Windows
# Installer les dépendances
pip install -r requirements.txt
requests>=2.28.0 # Bibliothèque client HTTP
tqdm>=4.64.0 # Visualisation de la barre de progression
urllib3>=1.26.0 # Gestion des URL
# Cible unique
python react2shell.py.py -u https://example.com
# Avec sortie détaillée
python react2shell.py.py -u https://example.com -v
# Analyser depuis un fichier
python react2shell.py.py -l targets.txt
# Avec threads concurrents
python react2shell.py.py -l targets.txt -t 10
# En-têtes personnalisés
python react2shell.py.py -u https://example.com -H "Authorization: Bearer token"
# Via proxy
python react2shell.py.py -u https://example.com --proxy http://127.0.0.1:8080
# Ignorer la vérification SSL
python react2shell.py.py -u https://example.com --no-verify
# Sortie vers un fichier
python react2shell.py.py -u https://example.com -o results.json
| Argument | Court | Description | Défaut |
|---|---|---|---|
--url | -u | URL cible unique | - |
--list | -l | Fichier contenant les URL cibles | - |
--threads | -t | Threads concurrents | 5 |
--timeout | - | Délai d'expiration de la requête (secondes) | 10 |
--proxy | - | URL du proxy (http/https) | - |
--headers | -H | En-têtes personnalisés | - |
--output | -o | Chemin du fichier de sortie | - |
--no-verify | - | Ignorer la vérification SSL | False |
--verbose | -v | Sortie détaillée | False |
--waf-bypass | - | Mode de contournement WAF | False |
--bypass-size | - | Taille de la charge utile de contournement (Ko) | 128 |
React2Shell Web Application Security Assessment Framework
[*] Début de l'évaluation de https://example.com
[*] Analyse des React Server Components...
[*] Test du comportement de redirection...
[+] Évaluation terminée
Cible : https://example.com
Statut : Analysé
Code de réponse : 200
Serveur : Next.js
Version React : 18.2.0
RSC détecté : Oui
Temps d'évaluation : 1.23s
{
"target": "https://example.com",
"timestamp": "2025-01-15T10:30:00Z",
"results": {
"status_code": 200,
"server": "Next.js",
"rsc_detected": true,
"headers": {
"content-type": "text/html",
"x-powered-by": "Next.js"
},
"assessment_time": 1.23
}
}
React2Shell-Scanner/
├── react2shell.py.py # Script principal du scanner
├── requirements.txt # Dépendances Python
└── README.md # Documentation
Créez un fichier texte avec une URL par ligne :
https://target1.com
https://target2.com
https://target3.com/api
Passez plusieurs en-têtes avec des drapeaux -H répétés :
python react2shell.py.py -u https://example.com \
-H "Authorization: Bearer token123" \
-H "X-Custom-Header: value" \
-H "Cookie: session=abc123"
# Proxy HTTP
--proxy http://127.0.0.1:8080
# Proxy HTTPS
--proxy https://proxy.example.com:8443
# Proxy authentifié
--proxy http://user:[email protected]:8080
# Exemple GitHub Actions
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run security scan
run: python react2shell.py.py -u ${{ secrets.TARGET_URL }} -o results.json
import subprocess
import json
# Exécuter le scanner
result = subprocess.run(
['python', 'react2shell.py.py', '-u', 'https://example.com', '-o', 'results.json'],
capture_output=True,
text=True
)
# Analyser les résultats
with open('results.json') as f:
findings = json.load(f)
Délai d'expiration de connexion
# Augmenter le délai d'expiration
python react2shell.py.py -u https://example.com --timeout 30
Erreurs de certificat SSL
# Ignorer la vérification (tests uniquement)
python react2shell.py.py -u https://example.com --no-verify
Limitation de débit
# Réduire les threads
python react2shell.py.py -l targets.txt -t 2
Nous accueillons les contributions qui améliorent :
Veuillez soumettre les problèmes et les demandes de tirage sur GitHub.
Ce projet est sous licence MIT License.
Des tests de sécurité rendus efficaces
🔒 Testez toujours de manière responsable 🔒