
PoC for CVE-2026-6433: WordPress FlipperCode Custom CSS, JS & PHP (≤2.0.7) — unauthenticated SQLi to RCE. Python 3 stdlib; single target or bulk multi-threaded scanning. Authorized testing & research only.
FlipperCode — Custom CSS, JS & PHP · Injeção SQL não autenticada → RCE (via eval())
Afetado: FlipperCode Custom CSS, JS & PHP ≤ 2.0.7 · Superfície do plugin WordPress via admin-ajax.php
flowchart TB
subgraph prep[" Pré-condições "]
A["Alvo roda plugin vulnerável"]
B["admin-ajax acessível"]
end
subgraph chain[" Cadeia de exploração "]
C["POST fc_ajax_call / wce_editor_inline_code"]
D["SQLi injeta payload PHP"]
E["Arquivo de prova escrito sob DOCUMENT_ROOT"]
F["Opcional: buscar prova / executar saída de comando"]
G["Padrão: limpeza remota com unlink"]
end
A --> C
B --> C
C --> D --> E --> F --> G
No GitHub, badges, tabelas e diagramas renderizam com forte contraste visual. Este documento é estruturado para que você possa folhear (badges + tabelas) ou ler profundamente (seções abaixo).
pip install necessário — apenas biblioteca padrão)Clone ou baixe esta pasta, então:
# Help / all flags
python CVE-2026-6433.py --help
# PHP-only proof (writes a small proof file; good for locked-down shells)
python CVE-2026-6433.py https://target.example --php-only --no-cleanup
# Run an OS command and print captured output (if execution functions exist remotely)
python CVE-2026-6433.py https://target.example --command "id"
# Only attempt to delete the proof file (cleanup mode)
python CVE-2026-6433.py https://target.example --cleanup-only
Use um arquivo de texto com uma URL base por linha. Linhas começando com # e linhas em branco são ignoradas.
python CVE-2026-6433.py --bulk targets.txt --threads 8
Exemplo targets.txt:
# Lab hosts — replace with authorized systems only
https://site-a.example
https://site-b.example
Notas:
--bulk ao mesmo tempo.min(threads, len(targets))).1 se algum alvo em lote falhar.FAIL: … e o processo sairá com código 1.[Bulk scan] resumem o progresso.[OK] ou [FAIL] com uma razão.--no-cleanup quando precisar preservar evidências em um engajamento autorizado.| Papel | Crédito |
|---|---|
| Descoberta original | Dr. John Umoru — ClarenSec Limited |
| Estrutura de lote / multi-thread | github.com/murrez |
[!WARNING] Uso legal e ético apenas
Esta prova de conceito existe para educação, pesquisa defensiva e testes de segurança autorizados.
Executá-lo contra sistemas sem permissão explícita por escrito pode violar leis de uso indevido de computadores em sua jurisdição.
Os autores e contribuidores não aceitam responsabilidade por uso indevido.
Última estrutura do README ajustada para legibilidade: badges · tabelas · fluxograma · bandeiras explícitas.
| Item | Detalhe |
|---|
| Vetor | Injeção SQL não autenticada através de ações AJAX do plugin |
| Impacto | Execução remota de código no host WordPress (payload escrito na raiz do docroot, então executado no contexto PHP) |
| Script | CVE-2026-6433.py — apenas stdlib (urllib, ssl, threading, concurrent.futures) |
| Modos | URL única ou arquivo em lote com workers multi-thread |
| Descoberta | Dr. John Umoru, ClarenSec Limited |
| Lote / threading | github.com/murrez |
| Bandeira | Significado |
|---|
target | URL base única do WordPress (omitir ao usar --bulk) |
--command CMD | Executa comando shell remotamente (usa shell_exec, exec, system, passthru ou popen quando disponível) |
--php-only | Escreve prova de metadados PHP em vez de depender de --command |
--no-cleanup | Não exclui o arquivo de prova remoto após uma execução bem-sucedida |
--proof-name NAME | Nome do arquivo remoto (padrão: rce-proof.txt) |
--cleanup-only | Apenas envia payload de unlink e relata se o arquivo foi removido |
--bulk FILE | Lê vários alvos de FILE |
--threads N | Workers concorrentes para --bulk (padrão: 5) |