
PoC para CVE-2026-6433: WordPress FlipperCode Custom CSS, JS & PHP (≤2.0.7) — SQLi no autenticado a RCE. Python 3 stdlib; escaneo de objetivo único o masivo multihilo. Solo pruebas e investigación autorizadas.
FlipperCode — Custom CSS, JS & PHP · Inyección SQL no autenticada → RCE (mediante eval())
Afectado: FlipperCode Custom CSS, JS & PHP ≤ 2.0.7 · superficie del plugin de WordPress expuesta mediante admin-ajax.php
flowchart TB
subgraph prep[" Preconditions "]
A["Target runs vulnerable plugin"]
B["admin-ajax reachable"]
end
subgraph chain[" Exploit chain "]
C["POST fc_ajax_call / wce_editor_inline_code"]
D["SQLi injects PHP payload"]
E["Proof file written under DOCUMENT_ROOT"]
F["Optional: fetch proof / run command output"]
G["Default: remote unlink cleanup"]
end
A --> C
B --> C
C --> D --> E --> F --> G
En GitHub, las insignias, tablas y diagramas se renderizan con un fuerte contraste visual. Este documento está estructurado para que puedas ojearlo (insignias + tablas) o leerlo en profundidad (secciones siguientes).
pip install — solo biblioteca estándar)Clona o descarga esta carpeta y luego:
# 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
Usa un archivo de texto con una URL base por línea. Las líneas que comienzan con # y las líneas en blanco se ignoran.
python CVE-2026-6433.py --bulk targets.txt --threads 8
Ejemplo de targets.txt:
# Lab hosts — replace with authorized systems only
https://site-a.example
https://site-b.example
Notas:
--bulk al mismo tiempo.min(threads, len(targets))).1 si falla cualquier objetivo del modo masivo.FAIL: … y el proceso se cerrará con el código 1.[Bulk scan] resumen el progreso.[OK] o [FAIL] con un motivo.--no-cleanup cuando debas conservar la evidencia en un compromiso autorizado.| Rol | Crédito |
|---|---|
| Descubrimiento original | Dr. John Umoru — ClarenSec Limited |
| Entorno de pruebas masivo / multihilo | github.com/murrez |
[!WARNING] Solo uso legal y ético
Esta prueba de concepto existe con fines de educación, investigación defensiva y pruebas de seguridad autorizadas.
Ejecutarla contra sistemas sin permiso escrito explícito puede violar las leyes sobre uso indebido de sistemas informáticos en tu jurisdicción.
Los autores y colaboradores no aceptan ninguna responsabilidad por el mal uso.
Última estructura del README ajustada para legibilidad: insignias · tablas · diagrama de flujo · banderas explícitas.
| Elemento | Detalle |
|---|
| Vector | Inyección SQL no autenticada canalizada a través de acciones AJAX del plugin |
| Impacto | Ejecución remota de código en el host de WordPress (el payload se escribe en el docroot y luego se ejecuta en contexto PHP) |
| Script | CVE-2026-6433.py — solo stdlib (urllib, ssl, threading, concurrent.futures) |
| Modos | URL única o archivo bulk con workers multihilo |
| Descubrimiento | Dr. John Umoru, ClarenSec Limited |
| Bulk / multihilo | github.com/murrez |
| Flag | Significado |
|---|
target | URL base única de WordPress (omítela al usar --bulk) |
--command CMD | Ejecuta un comando de shell de forma remota (usa shell_exec, exec, system, passthru o popen cuando estén disponibles) |
--php-only | Escribe una prueba de metadatos PHP en lugar de depender de --command |
--no-cleanup | No elimina el archivo de prueba remoto tras una ejecución exitosa |
--proof-name NAME | Nombre del archivo remoto (por defecto: rce-proof.txt) |
--cleanup-only | Solo envía el payload de unlink e informa si el archivo ya no existe |
--bulk FILE | Lee múltiples objetivos desde FILE |
--threads N | Workers concurrentes para --bulk (por defecto: 5) |