
PoC-Exploit für CVE-2024-1813: PHP-Objektinjektion im Simple Job Board WordPress-Plugin, die unbeabsichtigte RCE über eine Gadget-Kette erreicht. Enthält Docker-Labor zur sicheren Demonstration.
Ende-zu-Ende: Ein Gast speichert über das öffentliche Bewerbungsformular ein serialisiertes PHP-Objekt, der Administrator öffnet die Bewerberliste, und die Gadget-Kette legt eine Webshell ab.
Unauthentifizierte PHP-Objektinjektion im WordPress-Plugin Simple Job Board (PressTigers). Ein Gast speichert über das öffentliche Bewerbungsformular ein serialisiertes PHP-Objekt; wenn ein Administrator später die Bewerberliste öffnet, unserialisiert das Plugin das Objekt und eine Drittanbieter-Gadget-Kette wandelt es in eine Remote-Code-Ausführung um.
| CVE | CVE-2024-1813 |
| Plugin | Simple Job Board (PressTigers) |
| Verwundbar | ≤ 2.11.0 |
| Behoben | 2.11.1 |
| Typ | PHP-Objektinjektion (unsichere Deserialisierung) |
| Auth | Keine (Pre-Auth-Injektion) |
| Auslöser | Administrator öffnet die Bewerberliste (normaler Arbeitsablauf) |
| CVSS | 9.8 |
📖 Vollständiger technischer Artikel: https://mobeta.fr/blog/
Dieses Repository ist das begleitende Labor und der PoC. Die detaillierte Analyse (Root Cause, das doppelte
unserialize, der Aufbau der POP-Kette, WAF-Bypass) befindet sich im Blog-Artikel.
.
├── sjb_cve_2024_1813.py # the PoC (builds + sends the payload)
├── LICENSE
└── lab/
├── docker-compose.yml # WordPress + MariaDB + vulnerable plugins
├── setup/setup.sh # one-shot provisioning (wp-cli)
└── trigger_exploit.sh # simulates the admin opening the applicants list
Reproduziert den verwundbaren Stack: WordPress 6.9.4 / PHP 8.3 / MariaDB 10.11 mit Simple Job Board 2.10.8 (Quelle + Senke) und All In One SEO 4.5.6 (die Gadget-Kette).
cd lab
docker compose up -d # boot + auto-provision
docker compose logs setup # prints the site URL, admin creds and job_id
Lab-Standardwerte: http://localhost:8081, Admin admin / admin123!.
# 1. Store the payload (pre-auth). Replace 4 with the job_id from the setup logs.
python3 sjb_cve_2024_1813.py http://localhost:8081 4 'id > /tmp/RCE_PROOF.txt'
# 2. Fire the sink (plays the admin opening the applicants list).
cd lab && ./trigger_exploit.sh
# 3. Check the result.
docker exec sjb_lab_wp cat /tmp/RCE_PROOF.txt
Nützliche PoC-Flags:
--print-only - erstellt und gibt die Wire-Payload aus, kein Netzwerkverkehr.--field - Name des POST-Felds (muss name enthalten; Standard jobapp_full_name).--int-prefix '+' - WAF-Evasion-Variante des serialisierten Längenpräfixes.--proxy http://127.0.0.1:8080 - über Burp leiten.unserialize() / maybe_unserialize()-Aufrufe auf post_meta;
bevorzugen Sie unserialize($data, ['allowed_classes' => false]).vendor/composer/installed.json, damit gescopte Bibliotheken
nicht identifiziert werden können.Nur für autorisierte Sicherheitstests und zu Schulungszwecken. Führen Sie dies niemals gegen ein System aus, ohne die ausdrückliche schriftliche Genehmigung des Eigentümers zu haben.
MIT - siehe LICENSE.