MobetaSec/CVE-2024-1813-POC
GitHub: MobetaSec/CVE-2024-1813-POC
针对 WordPress Simple Job Board 插件 CVE-2024-1813 未认证 PHP 对象注入漏洞的完整概念验证与实验环境,演示从认证前 payload 投递到管理员触发 RCE 的全链路。
Stars: 0 | Forks: 0
# CVE-2024-1813 - Simple Job Board ≤ 2.11.0 (WordPress) - 未认证 PHP 对象注入
## 🎥 概念验证演示
端到端流程:访客通过公开申请表单存储一个序列化的 PHP 对象,管理员打开申请人列表,gadget chain 随即释放一个 webshell。
[](poc.gif)
**Simple Job Board** WordPress 插件 (PressTigers) 中的未认证 PHP 对象注入。访客通过公开申请表单存储一个序列化的 PHP 对象;当管理员随后打开申请人列表时,插件会对其进行反序列化,第三方的 gadget chain 会将其转化为远程代码执行。
| | |
|---|---|
| CVE | CVE-2024-1813 |
| 插件 | Simple Job Board (PressTigers) |
| 受影响版本 | ≤ 2.11.0 |
| 已修复版本 | 2.11.1 |
| 类型 | PHP 对象注入(不安全的反序列化) |
| 认证 | 无需认证(认证前注入) |
| 触发方式 | 管理员打开申请人列表(正常工作流) |
| CVSS | 9.8 |
## 环境要求
- 用于 PoC 的 **Python 3.7+** - 仅使用标准库,无需安装任何包。
- 用于实验环境的 **Docker + Docker Compose**。
## 仓库结构
```
.
├── sjb_cve_2024_1813.py # the PoC (builds + sends the payload)
├── LICENSE
└── lab/
├── docker-compose.yml # WordPress + MariaDB + vulnerable plugins
├── setup/setup.sh # one-shot provisioning (wp-cli)
└── trigger_exploit.sh # simulates the admin opening the applicants list
```
## 实验环境
重现易受攻击的技术栈:WordPress 6.9.4 / PHP 8.3 / MariaDB 10.11,包含 Simple Job Board 2.10.8(源与汇聚点)以及 All In One SEO 4.5.6(gadget chain)。
```
cd lab
docker compose up -d # boot + auto-provision
docker compose logs setup # prints the site URL, admin creds and job_id
```
实验环境默认地址:`http://localhost:8081`,管理员 `admin` / `admin123!`。
## 运行 exploit
```
# 1. 存储 payload(认证前)。将 4 替换为 setup 日志中的 job_id。
python3 sjb_cve_2024_1813.py http://localhost:8081 4 'id > /tmp/RCE_PROOF.txt'
# 2. 触发 sink(模拟管理员打开申请人列表)。
cd lab && ./trigger_exploit.sh
# 3. 检查结果。
docker exec sjb_lab_wp cat /tmp/RCE_PROOF.txt
```
实用的 PoC flags:
- `--print-only` - 构建并打印网络传输的 payload,不产生网络流量。
- `--field` - POST 字段名(必须包含 `name`;默认为 `jobapp_full_name`)。
- `--int-prefix '+'` - 用于绕过 WAF 的序列化长度前缀变体。
- `--proxy http://127.0.0.1:8080` - 通过 Burp 进行路由。
## 缓解措施
- 将 Simple Job Board 更新至 **≥ 2.11.1**。
- 审查 `post_meta` 上任何显式的 `unserialize()` / `maybe_unserialize()`;建议使用 `unserialize($data, ['allowed_classes' => false])`。
- 阻止直接访问 `vendor/composer/installed.json`,以防 scoped library 版本被指纹识别。
- 移除暴露 POP gadgets 的未使用插件(Monolog、Guzzle、Symfony 等)。
## 参考
- WPScan: https://wpscan.com/vulnerability/600cb9cf-2e93-4927-b449-edd7edf186d2/
- Wordfence: https://www.wordfence.com/threat-intel/vulnerabilities/id/89584034-4a93-42a6-8fef-55dc3895c45c
- SVN patch diff 2.10.8 → 2.11.1: https://plugins.trac.wordpress.org/changeset?new=3051715%40simple-job-board&old=3038476%40simple-job-board
- PHPGGC (Monolog chains): https://github.com/ambionics/phpggc
## 免责声明
仅供授权的安全测试和教育使用。未经所有者明确书面许可,严禁对任何系统运行此程序。
## 许可证
MIT - 见 [LICENSE](LICENSE)。
标签:CISA项目, PHP反序列化, PoC, 安全漏洞验证, 文件完整性监控, 暴力破解, 版权保护, 请求拦截