lucastran05/CVE-2026-29000
GitHub: lucastran05/CVE-2026-29000
CVE-2026-29000漏洞复现实验室
Stars: 0 | Forks: 0
# CVE-2026-29000 实验室
Lab Java/SparkJava mô phỏng lỗi xác thực JWT/JWE liên quan đến CVE-2026-29000. Ứng dụng chạy trên cổng `4567` và cung cấp các API để thử luồng đăng nhập hợp lệ, tạo token giả mạo và kiểm tra dashboard.
## CVE 信息
CVE-2026-29000 ảnh hưởng đến `pac4j-jwt` trong các phiên bản trước `4.5.9`, `5.7.9` và `6.3.3`. Lỗi nằm trong `JwtAuthenticator` khi xử lý encrypted JWT/JWE, cho phép attacker forge authentication token trong một số luồng xác thực.
Các phiên bản nên nâng cấp tối thiểu theo nhánh đang dùng:
- `4.x`: nâng lên `4.5.9` hoặc mới hơn
- `5.x`: nâng lên `5.7.9` hoặc mới hơn
- `6.x`: nâng lên `6.3.3` hoặc mới hơn
## 要求
- Docker Desktop hoặc Docker Engine
- Docker Compose plugin
- Java 17 và Maven nếu muốn chạy trực tiếp không dùng Docker
## 使用 Docker Compose 安装
Tại thư mục gốc của dự án, chạy:
```
docker compose up --build
```
Sau khi build xong, mở:
```
http://localhost:4567
```
Dừng lab:
```
docker compose down
```
## 使用 Docker CLI 安装
Build image:
```
docker build -t cve-2026-29000-lab .
```
Chạy container:
```
docker run --rm -p 4567:4567 --name cve-2026-29000-lab cve-2026-29000-lab
```
Kiểm tra server public key:
```
curl http://localhost:4567/api/public-key
```
## 直接使用 Maven 运行
Di chuyển vào thư mục `lab`:
```
cd lab
```
Chạy ứng dụng:
```
mvn exec:java
```
Hoặc build trước rồi chạy bằng classpath:
```
mvn -DskipTests package dependency:copy-dependencies
java -cp "target/classes;target/dependency/*" com.demo.App
```
Trên Linux/macOS, dùng dấu `:` thay cho `;`:
```
java -cp "target/classes:target/dependency/*" com.demo.App
```
## 基本 API
- `GET /` - hướng dẫn nhanh các bước demo
- `POST /api/login` - tạo token hợp lệ
- `POST /api/forge-token` - tạo token phục vụ demo bypass
- `GET /api/dashboard` - kiểm tra token trong header `Authorization: Bearer `
- `GET /api/public-key` - xem public key dạng JWK
## 快速测试示例
Đăng nhập hợp lệ:
```
curl -X POST http://localhost:4567/api/login \
-H "Content-Type: application/json" \
-d "{\"username\":\"user_lucas\",\"role\":\"user\"}"
```
Tạo token giả mạo:
```
curl -X POST http://localhost:4567/api/forge-token \
-H "Content-Type: application/json" \
-d "{\"username\":\"admin\",\"role\":\"administrator\"}"
```
## 项目结构
```
CVE-2026-29000-lab/
|-- Dockerfile
|-- docker-compose.yml
|-- lab/
| |-- pom.xml
| `-- src/main/java/com/demo/
| |-- App.java
| `-- VulnerableAuthenticator.java
`-- README.md
```
## 注意
Lab này chỉ dùng cho học tập và kiểm thử trong môi trường cục bộ. Không triển khai công khai hoặc dùng để tấn công hệ thống không được phép.
标签:JS文件枚举, 域名枚举, 版权保护, 请求拦截