joshuavanderpoll/CVE-2026-49772

GitHub: joshuavanderpoll/CVE-2026-49772

针对 WordPress The Events Calendar 插件未授权盲注 SQLi 漏洞(CVE-2026-49772)的概念验证与数据提取工具。

Stars: 1 | Forks: 0

The Events Calendar SQL 注入 (CVE-2026-49772) PoC

Python

## 描述 CVE-2026-49772 是 WordPress 插件 **The Events Calendar** 中的一个 **无需身份验证的盲注 SQL 注入**。 由于 REST 参数验证器失效(`validate_callback` 返回了一个闭包而没有进行验证),导致实验性 `tec/v1` REST API 上的 `order` 参数在未经净化的情况下直接进入了 SQL 的 `ORDER BY` 子句: ``` GET /wp-json/tec/v1/events?orderby=event_date&order= ``` ``` ... ORDER BY event_date , wp_posts.post_date DESC ... ``` 这是一个 **只读** 注入(不支持堆叠查询,不能写入,没有直接输出)—— 但是整个数据库都可以通过基于布尔/时间的盲注提取:用户密码哈希、session token、应用密码、密钥。 **受影响版本:** The Events Calendar `6.15.12` – `6.16.2`(在 `6.16.3` 中已修复) **严重程度:** CVSS 3.1 `9.3` 严重 — `AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:L` ## 功能 - **`--check`** — 无损检测:REST namespace、插件版本、基于时间的确认 - **`--recon`** — 数据库指纹:版本、当前用户、数据库、OS、权限、表前缀 - **`--users`** — 导出 `wp_users`:登录名、邮箱、密码哈希 - **`--user-meta`** — 导出 `wp_usermeta`:session token、应用密码、capabilities - **`--get-table`** — 导出任何表,并自动发现列 - **`--query`** — 提取任何标量 `SELECT` 的结果 - **双盲注模式** — 快速的布尔盲注(默认)或时间盲注,支持多线程;无外部依赖 ## 安装 纯 Python 3 标准库实现 —— 包含 `requirements.txt` 用于标准工作流,但不会额外安装任何东西。 ### OSX / Linux ``` git clone https://github.com/joshuavanderpoll/CVE-2026-49772.git cd CVE-2026-49772 python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt python3 CVE-2026-49772.py --help ``` ### Windows ``` git clone https://github.com/joshuavanderpoll/CVE-2026-49772.git cd CVE-2026-49772 python3 -m venv .venv .venv\Scripts\activate pip3 install -r requirements.txt python CVE-2026-49772.py --help ``` ## 用法 ``` python3 CVE-2026-49772.py [options] ``` 请准确选择一个操作:`--check`、`--recon`、`--users`、`--user-meta`、`--get-table `、`--query `。运行 `--help` 查看所有选项。 ### 漏洞检测 ``` python3 CVE-2026-49772.py target.tld --check ``` ### 数据库侦查 ``` python3 CVE-2026-49772.py target.tld --recon ``` ### 导出用户和密码哈希 ``` python3 CVE-2026-49772.py target.tld --users ``` ### 提取自定义值 ``` python3 CVE-2026-49772.py target.tld --query "SELECT @@version" ``` 调优参数:`--technique boolean|time`、`--delay`、`--threads`、`--rows`、`--prefix`、`--where`、`-useragent`、`-timeout`。使用 `-l targets.txt` 扫描多个主机。 ## Docker PoC 一个独立的 Docker Compose 实验环境,包含带有漏洞的插件(已内置,无需在启动时下载)和预置的事件。详情请见 [docker/DOCKER.md](docker/DOCKER.md)。 ``` cd docker/ docker compose up -d python3 ../CVE-2026-49772.py localhost:8080 --check ``` ## 修复建议 - 将 The Events Calendar 更新至 **6.16.3** 或更高版本 - 在修复之前,请在 WAF / 反向代理处阻止 `/wp-json/tec/v1/` ## 参考 - [The Events Calendar](https://theeventscalendar.com/) - [CVE.org — CVE-2026-49772](https://www.cve.org/CVERecord?id=CVE-2026-49772) - [NVD — CVE-2026-49772](https://nvd.nist.gov/vuln/detail/CVE-2026-49772) - [GitHub Advisory — GHSA-v796-wqfq-j4xh](https://github.com/advisories/GHSA-v796-wqfq-j4xh) - [Patchstack — The Events Calendar SQL 注入](https://patchstack.com/database/wordpress/plugin/the-events-calendar/) ## 免责声明 本工具仅供教育和研究目的使用。请仅对您拥有或获得明确书面测试许可的系统使用此工具。创作者不对因使用此工具而造成的任何误用或损害承担责任。
标签:CISA项目, Cobalt Strike集成, Maven, Python, WordPress, 无后门, 漏洞验证, 版权保护, 请求拦截