Skip to content

feat: add 7 new security labs + OWASP 2025 alignment#2

Open
statick88 wants to merge 7 commits into
afsh4ck:mainfrom
statick88:main
Open

feat: add 7 new security labs + OWASP 2025 alignment#2
statick88 wants to merge 7 commits into
afsh4ck:mainfrom
statick88:main

Conversation

@statick88

Copy link
Copy Markdown

Summary

Adds 7 new security labs and aligns all existing labs with OWASP 2025 standards.

New Labs

Lab OWASP Reference Category
Supply Chain Security A03:2025 OWASP Top 10 2025
BOLA API1:2023 OWASP API Security
Mass Assignment API3:2023 OWASP API Security
Exceptional Conditions A10:2025 OWASP Top 10 2025
GraphQL API8:2023 OWASP API Security
LLM Excessive Agency LLM06:2025 OWASP LLM Top 10
API Broken Authentication API2:2023 OWASP API Security

Changes

  • Updated all existing OWASP lab titles with 2025 year codes (A01:2025–A10:2025)
  • Added mappings for new routes
  • Added route handlers with vulnerable implementations (educational)
  • Updated README.md to reflect 50+ labs covering OWASP Top 10 2025 + API Security + LLM Top 10

Testing

All 14 smoke tests passed. Each lab includes:

  • Interactive HTML template with forms/API explorers
  • Vulnerable Flask route handlers
  • Hidden flags for CTF-style learning
  • ES/EN bilingual support

Total labs: 50+ (43 original + 7 new)

- Add labs: Supply Chain (A03:2025), BOLA (API1:2023), Mass Assignment (API3:2023),
  Exceptional Conditions (A10:2025), GraphQL (API8:2023), LLM Excessive Agency (LLM06:2025),
  API Broken Authentication (API2:2023)
- Update all existing OWASP lab titles to use 2025 year codes (A01:2025–A10:2025)
- Update README.md to reflect 50+ labs covering OWASP Top 10 2025 + API Security + LLM Top 10
- Add path_to_lab mappings for new lab routes
- Add route handlers with vulnerable implementations for educational purposes
- Add OWASP API Security Top 10 section (BOLA, Broken Auth, Mass Assignment, GraphQL)
- Add OWASP LLM Top 10 2025 section (Excessive Agency)
- Add Supply Chain and Exceptional Conditions to OWASP Top 10 2025 table
- Add API Hunter achievement
- Update AI Breaker achievement to include LLM Top 10
Covers all new labs with unit tests verifying:
- Template rendering and OWASP codes
- Vulnerable behavior (BOLA, mass assignment, JWT none, etc.)
- Flag presence in each lab
- Path mappings for sidebar navigation
- Lab list integrity and category assignments
…ty findings

- Stage 1: API Security (6) — Prototype Pollution, Data Exposure, Rate Limit Bypass, Business Flow Abuse, BFLA, Unsafe API Consumption
- Stage 2: Cloud/Advanced (4) — Cloud Metadata SSRF, Advanced SSRF DNS Rebinding, HTTP Smuggling, GraphQL Advanced
- Stage 3: Breach-Driven (5) — Supply Chain v2, Exceptional v2, DOM XSS Advanced, Mass Assignment v2, UUID IDOR
- Stage 4: AI/Emerging (3) — MCP Tool Poisoning, RAG Injection, Device Code Phishing

153 tests passing, 68 total labs (was 50)
- Replace hardcoded headers with {% include '_lab_header.html' %}
- Migrate raw Tailwind (bg-gray-800) to shared CSS classes (hl-card, hl-input, btn-primary)
- Add data-i18n attributes for i18n readiness
- Add try/catch error handling to all fetch() calls
- Normalize max-w-4xl to max-w-3xl for consistency
- Update 18 Flask routes to pass lab context to templates
- 153/153 tests passing
- Add conftest.py with app/client fixtures
- Split monolithic test_new_labs.py (563 lines) into 5 staged files:
  - test_stage0_owasp.py: 7 OWASP labs + integrity checks (42 tests)
  - test_stage1_api.py: 6 API security labs (29 tests)
  - test_stage2_cloud.py: 4 cloud/advanced labs (10 tests)
  - test_stage3_breach.py: 5 breach-driven labs (11 tests)
  - test_stage4_ai.py: 3 AI/emerging labs (9 tests)
- 101 pytest tests, all passing
- Vertical slice pattern: one test per behavior
- pytest fixtures instead of global test client
- Proper test isolation per lab
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant