Kulik-Labs-Development/Ghost-CMS-Code-Injection-Audit-CVE-2026-26980
GitHub: Kulik-Labs-Development/Ghost-CMS-Code-Injection-Audit-CVE-2026-26980
Ghost CMS代码注入清理工具,针对CVE-2026-26980漏洞批量移除恶意代码。
Stars: 0 | Forks: 0
# Ghost 注入清理器
通过 Admin API 移除 Ghost CMS 站点中所有按文章和页面的代码注入。
**全站代码注入(Ghost Admin → 设置 → 代码注入)绝不会被修改。**
## 系统要求
- Python 3.8 或更高版本
- 两个 pip 包:
```
pip install requests PyJWT
```
## 设置
### 1. 获取您的 Admin API 密钥
1. 登录 Ghost Admin
2. 进入 **设置 → 集成**
3. 点击 **添加自定义集成**,为其命名(例如“Cleaner”)
4. 复制 **Admin API Key** — 它看起来像这样:
6478abc123def456:8f9e0d1c2b3a4567890abcdef1234567890abcdef1234567890abcdef12345678
### 2. 创建配置文件
在与脚本相同的目录中创建一个名为 `ghost_cleaner_config.json` 的文件:
```
{
"ghost_url": "https://yourdomain.com",
"admin_api_key": "YOUR_KEY_ID:YOUR_KEY_SECRET"
}
```
## 使用方法
### 空运行(安全模式,不写入任何更改)
在执行任何操作之前,请务必先运行此命令以查看具体会清理哪些内容:
```
python3 ghost_injection_cleaner.py
```
示例输出:
```
Ghost Injection Remover
Mode : DRY-RUN (read-only)
Target: https://yourdomain.com
NOTE: /ghost/api/admin/settings/ (site-wide injection) is
never read or written by this script.
============================================================
POSTS
============================================================
47 posts fetched.
✦ 'My First Post'
HEAD: ''
🔍 DRY-RUN — would be cleared.
============================================================
PAGES
============================================================
6 pages fetched.
============================================================
SUMMARY
============================================================
Would clear : 1 posts/pages
Already clean: 52 posts/pages
Re-run with --apply to commit these changes.
```
### 应用更改
当您对空运行输出满意后,使用 `--apply` 参数运行。系统将提示您进行确认:
```
python3 ghost_injection_cleaner.py --apply
```
```
Type YES to confirm changes to posts and pages: YES
...
✅ Cleared.
```
### 使用自定义配置文件路径
```
python3 ghost_injection_cleaner.py --config /path/to/my_config.json
```
## 清理内容
对于每篇文章和页面,它会将以下两个字段设置为 `null`:
| 字段 | 在 Ghost 编辑器中的位置 |
|---|---|
| `codeinjection_head` | 文章/页面设置 → 代码注入 → 头部 |
| `codeinjection_foot` | 文章/页面设置 → 代码注入 → 底部 |
没有注入内容的文章和页面将被静默跳过。
## 不会修改的内容
- **全站头部/底部注入** — Ghost Admin → 设置 → 代码注入
- **文章/页面内容**(您文章的实际正文)
- **主题文件**
- **除上述列出的两个字段以外的任何 Ghost 设置**
## 故障排除
**`缺少依赖`**
运行 `pip install requests PyJWT` 然后重试。
**`admin_api_key 必须为 'id:secret' 格式`**
请确保您的密钥中间有一个冒号。它应该看起来像是两个由 `:` 分隔的十六进制字符串。直接从 Ghost Admin 复制,不要添加空格。
**`401 未授权`**
您的 Admin API 密钥可能有误,或者该集成可能已被删除。请返回 Ghost Admin → 设置 → 集成进行验证。
**`连接错误` 或超时**
检查配置文件中的 `ghost_url` 是否正确,以及从您运行脚本的机器上是否可以访问该站点。
**脚本在大型站点上挂起**
每页 50 篇文章会生成一个新的 JWT 并等待 API 响应。这是正常的 — 请稍等片刻。
标签:CVE-2026-26980, Ghost内容管理系统, 内容管理系统, 垃圾代码, 安全漏洞, 安全维护, 恶意代码移除, 批量清理, 注入清除, 漏洞修复, 管理员API, 网站安全, 网络安全培训, 自动化清理, 逆向工具