MoxitPanchal/EverShop-Lab-CVE-2026-25993
GitHub: MoxitPanchal/EverShop-Lab-CVE-2026-25993
基于 Docker 快速部署的 EverShop 二阶 SQL 注入漏洞靶场,用于安全学习与漏洞复现。
Stars: 0 | Forks: 0
# CVE-2026-25993 — EverShop 二阶 SQL 注入靶场
## 前置条件
- Docker Engine 24+ 以及 Docker Compose v2+
- 2 GB 空闲 RAM
## 部署
```
cd EverShop-Lab/
docker compose up
```
首次构建请等待约 2 分钟(包括克隆 EverShop v2.1.0,进行编译,运行迁移以及生成种子数据)。
应用程序将通过 `http://localhost:3000` 访问。
### 凭据
| 字段 | 值 |
|---|---|
| 管理员邮箱 | `admin@evershop.io` |
| 管理员密码 | `password123` |
### 停止 / 重置
```
# 停止 lab(保留数据)
docker compose down
# 停止并删除所有数据(下次全新开始)
docker compose down -v
# 从零开始重建
docker compose down -v
docker compose up -d --build
```
## 漏洞说明
CVE-2026-25993 是 EverShop 分类 URL 重写处理过程中的一个**二阶 SQL 注入**漏洞。`url_key` 字段仅验证了 `^\S+$`(不允许包含空白字符),从而允许了 SQL 元字符的使用。当更新分类时,事件订阅器会通过字符串拼接构建原始 SQL 语句,并在数据库中执行存储的 `url_key`。
## 目标
**导出整个数据库。** 本靶场没有 flag。你的目标是:
1. 提取 PostgreSQL 版本字符串(作为注入成功的证明)
2. 枚举所有数据库表
3. 从关键表(如 admin_user、customer、product 等)中提取行数据
## 提示
分类的 `url_key` 字段会拒绝空格,但接受 `'` 和 `||`。当更新分类时,事件订阅器会将该 `url_key` 拼接到原始 SQL 的 `REPLACE()` 调用中。创建一个父分类,在其下添加一个子分类,然后更新父分类的 `url_key` ——大约 15 秒后,结果将体现在子分类的 `url_rewrite` 条目中。
## 参考
- [CVE-2026-25993](https://nvd.nist.gov/vuln/detail/CVE-2026-25993)
- [GitHub 安全公告 GHSA-3h84-9rhc-j2ch](https://github.com/evershopcommerce/evershop/security/advisories/GHSA-3h84-9rhc-j2ch)
- [EverShop 代码库](https://github.com/evershopcommerce/evershop)
标签:MITM代理, 测试用例, 版权保护, 自定义脚本, 请求拦截