
Ferramenta de avaliação de segurança em linha de comando para aplicações React e Next.js, analisando React Server Components em busca de configurações incorretas, com varredura de múltiplos alvos, detecção de WAF e suporte a proxy.
Framework de Avaliação de Segurança de Aplicações Web para Aplicações React e Next.js
Esta ferramenta foi projetada exclusivamente para testes de segurança autorizados.
Os usuários são os únicos responsáveis por garantir a conformidade com todas as leis aplicáveis.
O React2Shell Scanner é um framework de avaliação de segurança de linha de comando projetado para ajudar profissionais de segurança a identificar vulnerabilidades potenciais em aplicações web React e Next.js. Ele se concentra na análise de implementações de React Server Components (RSC) para identificar configurações incorretas de segurança comuns.
| Recurso | Descrição |
|---|---|
| 🎯 Varredura Multi-Alvo | Varredura de URLs únicas ou listas de alvos |
| 🔄 Testes Concorrentes | Multithread para avaliação eficiente |
| 🛡️ Detecção de WAF | Identificar e analisar respostas de WAF |
| 📊 Acompanhamento de Progresso | Barra de progresso visual com tqdm |
| 🔧 Cabeçalhos Configuráveis | Injeção de cabeçalhos personalizados |
| 🌐 Suporte a Proxy | Roteamento através de proxies HTTP/HTTPS |
| 📝 Formatos de Saída | Geração de relatórios em JSON e texto |
| 🎨 CLI Colorido | Saída de terminal clara e codificada por cores |
# Clonar repositório
git clone https://github.com/wi3memake/React2Shell-Scanner.git
cd react2shell-scanner
# Criar ambiente virtual (recomendado)
python -m venv venv
source venv/bin/activate # Linux/Mac
.\venv\Scripts\activate # Windows
# Instalar dependências
pip install -r requirements.txt
requests>=2.28.0 # Biblioteca de cliente HTTP
tqdm>=4.64.0 # Visualização de barra de progresso
urllib3>=1.26.0 # Manipulação de URLs
# Alvo único
python react2shell.py.py -u https://example.com
# Com saída detalhada
python react2shell.py.py -u https://example.com -v
# Varrer a partir de arquivo
python react2shell.py.py -l targets.txt
# Com threads concorrentes
python react2shell.py.py -l targets.txt -t 10
# Cabeçalhos personalizados
python react2shell.py.py -u https://example.com -H "Authorization: Bearer token"
# Através de proxy
python react2shell.py.py -u https://example.com --proxy http://127.0.0.1:8080
# Ignorar verificação SSL
python react2shell.py.py -u https://example.com --no-verify
# Saída para arquivo
python react2shell.py.py -u https://example.com -o results.json
| Argumento | Curto | Descrição | Padrão |
|---|---|---|---|
--url | -u | URL de alvo único | - |
--list | -l | Arquivo com URLs de alvo | - |
--threads | -t | Threads concorrentes | 5 |
--timeout | - | Tempo limite de requisição (segundos) | 10 |
--proxy | - | URL do proxy (http/https) | - |
--headers | -H | Cabeçalhos personalizados | - |
--output | -o | Caminho do arquivo de saída | - |
--no-verify | - | Ignorar verificação SSL | False |
--verbose | -v | Saída detalhada | False |
--waf-bypass | - | Modo de bypass de WAF | False |
--bypass-size | - | Tamanho do payload de bypass (KB) | 128 |
React2Shell Web Application Security Assessment Framework
[*] Iniciando avaliação de https://example.com
[*] Analisando React Server Components...
[*] Testando comportamento de redirecionamento...
[+] Avaliação concluída
Alvo: https://example.com
Status: Analisado
Código de Resposta: 200
Servidor: Next.js
Versão do React: 18.2.0
RSC Detectado: Sim
Tempo de Avaliação: 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 do scanner
├── requirements.txt # Dependências Python
└── README.md # Documentação
Crie um arquivo de texto com uma URL por linha:
https://target1.com
https://target2.com
https://target3.com/api
Passe múltiplos cabeçalhos com flags -H repetidas:
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 Autenticado
--proxy http://user:[email protected]:8080
# Exemplo de 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
# Executar scanner
result = subprocess.run(
['python', 'react2shell.py.py', '-u', 'https://example.com', '-o', 'results.json'],
capture_output=True,
text=True
)
# Analisar resultados
with open('results.json') as f:
findings = json.load(f)
Tempo Limite de Conexão
# Aumentar tempo limite
python react2shell.py.py -u https://example.com --timeout 30
Erros de Certificado SSL
# Ignorar verificação (apenas testes)
python react2shell.py.py -u https://example.com --no-verify
Limitação de Taxa
# Reduzir threads
python react2shell.py.py -l targets.txt -t 2
Aceitamos contribuições que melhorem:
Envie issues e pull requests no GitHub.
Este projeto está licenciado sob a Licença MIT.
Testes de Segurança Feitos com Eficiência
🔒 Sempre Teste com Responsabilidade 🔒