cyeezy08/Kimai-CVE-2026-49865-POC
GitHub: cyeezy08/Kimai-CVE-2026-49865-POC
针对 Kimai 时间追踪系统默认 APP_SECRET 硬编码漏洞(CVE-2026-52824)的概念验证利用工具包,提供从资产发现到身份验证绕过的完整利用链。
Stars: 0 | Forks: 0
# Kimai CVE-2026-52824 — 默认 APP_SECRET 身份验证绕过
针对 Kimai 时间追踪系统中硬编码默认 `APP_SECRET` 漏洞(版本 ≤ 2.57.0)的概念验证利用工具包。允许通过在未打补丁的 Docker 部署上伪造 `KIMAI_REMEMBER` cookie 来绕过身份验证。
## 漏洞概述
| 字段 | 值 |
|-------|-------|
| **CVE** | CVE-2026-52824 |
| **GHSA** | GHSA-jr9p-4h4j-6c58 |
| **CVSS** | 9.1 (严重) |
| **CWE** | CWE-1188 — 不安全的默认资源初始化 |
| **受影响版本** | Kimai ≤ 2.57.0 (Docker 镜像 / `.env.dist`) |
| **修复版本** | 2.58.0 |
| **鸣谢** | Trent M. (`AzureADTrent`) |
## 工作原理
Kimai 在其 Docker 镜像和 `.env.dist` 中附带了硬编码的默认 `APP_SECRET`:
```
APP_SECRET=change_this_to_something_unique
```
在 v2.57.0 版本中,remember-me cookie 的 `signature_properties` 为空,导致 `FieldsHash` 成为一个常量 (`SHA256('')`)。结合已知的密钥,任何人都可以为任何用户(包括管理员)伪造有效的 `KIMAI_REMEMBER` cookie。
### 攻击链
1. 识别运行版本 ≤ 2.57.0 的 Kimai 实例
2. 用户 ID 是连续的 (管理员 = id:1)
3. 已知的 `APP_SECRET` → 计算 HMAC-SHA256 签名
4. 使用管理员的 user_id + 用户名伪造 `KIMAI_REMEMBER` cookie
5. 服务器验证 HMAC → 获得完整的管理员会话
6. 管理员权限允许操纵时间表、创建用户以及潜在的 RCE
### v2.58.0 中发生了什么变化
| 方面 | v2.57.0 (存在漏洞) | v2.58.0 (已修复) |
|--------|---------------------|-------------------|
| **Dockerfile** | `ENV APP_SECRET=change_this_to_something_unique` | 无硬编码默认值 |
| **entrypoint.sh** | 无密钥生成 | 首次启动时生成 `bin2hex(random_bytes(32))` |
| **存储** | 不适用 | 持久化存储在 `/opt/kimai/var/data/.appsecret` |
## 工具包内容
| 文件 | 用途 |
|------|---------|
| `exploit.py` | 单目标利用 — 伪造 cookie 并进行身份验证 |
| `batch_pwn.py` | 针对主机列表的多线程批量利用 |
| `quick_scan.py` | 两遍扫描器 — 先快速过滤,后深度探测 |
| `deep_probe.py` | 通过多个 endpoint 进行版本检测 |
| `probe_batch.py` | 从文件探测主机的版本和漏洞 |
| `shodan-scanner.py` | 集成 Shodan 以发现 Kimai 实例 |
## 安装
```
git clone https://github.com/cyeezy08/Kimai-CVE-2026-49865-POC.git
cd Kimai-CVE-2026-49865-POC
pip install -r requirements.txt
```
## 用法
### 单目标利用
```
python3 exploit.py https://kimai.example.com
python3 exploit.py https://kimai.example.com admin --dump
```
### 批量利用
```
# 从 URL 文件
python3 batch_pwn.py kimai_hosts.txt results.txt 30
```
### Shodan 发现
```
export SHODAN_API_KEY="your_key"
python3 shodan-scanner.py --search --output kimai_hosts.txt
```
### 版本探测
```
python3 deep_probe.py kimai_hosts.txt versioned_results.txt
python3 quick_scan.py hosts_file.txt
```
## 依赖要求
- Python 3.8+
- `requests` — HTTP 客户端
- `shodan` — Shodan API 客户端 (仅用于 `shodan-scanner.py`)
## 免责声明
本工具包仅供**授权的安全测试和研究使用**。未经授权访问计算机系统是违法行为。在测试前,请务必获取适当的授权。作者对任何滥用行为不承担责任。
## 许可证
MIT,不知道,我累了,谢谢
标签:Modbus, PoC, Python, 无后门, 暴力破解, 身份验证绕过, 逆向工具