Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds 10 new API security challenge environments and updates the challenge catalog/documentation.
Closes #9.
Added Challenges (10)
api-bfla-role(Medium)api-bola-order(Easy)api-chain-exploit(Hard)api-gateway-bypass(Hard)api-jwt-kid-injection(Medium)api-oauth-redirect(Medium)api-property-exposure(Easy)api-rate-limit-bypass(Easy)api-version-leak(Medium)api-webhook-ssrf(Hard)Challenge Details + OWASP API Security Top 10:2023 Mapping
api-bfla-role->OWASP API5:2023 Broken Function Level AuthorizationMissing role checks expose admin endpoints to any authenticated employee.
api-bola-order->OWASP API1:2023 Broken Object Level AuthorizationOrder IDs can be enumerated to retrieve another user's order and embedded flag.
api-chain-exploit->OWASP API10:2023 Unsafe Consumption of APIsExternal JSON is trusted and rendered unsafely, enabling SSTI through upstream data.
api-gateway-bypass->OWASP API8:2023 Security MisconfigurationGateway path filtering can be bypassed through percent-encoding and normalization gaps.
api-jwt-kid-injection->OWASP API2:2023 Broken AuthenticationSQL injection in JWT
kidlookup lets attackers choose the signing key and forge admin tokens.api-oauth-redirect->OWASP API2:2023 Broken AuthenticationPrefix-only
redirect_urivalidation leaks admin authorization codes to attacker-controlled listeners.api-property-exposure->OWASP API3:2023 Broken Object Property Level AuthorizationUser detail responses expose sensitive internal properties including the admin API key.
api-rate-limit-bypass->OWASP API4:2023 Unrestricted Resource ConsumptionTrusting
X-Forwarded-Forallows bypassing IP-based throttling for PIN brute force.api-version-leak->OWASP API9:2023 Improper Inventory ManagementA deprecated unauthenticated API version remains accessible and exposes admin data.
api-webhook-ssrf->OWASP API7:2023 Server Side Request ForgeryWebhook callback fetching can be abused to reach internal-only services and extract secrets.
What’s Included
Dockerfile,docker-compose.yml,requirements.txt,app/,challenge.json).index.jsonentries for the new API challenges.README.mdchallenge table.DEPLOYMENT_CHECKLIST.mdpackage list and totals.scripts/generate-index.jsso the registry only indexes real challenge directories.3.1.3, and standardized scoring metadata.owaspCategoryvalues from OWASP 2021 IDs to OWASP 2025 IDs.Impact
Verification
index.json+ allchallenge.json).3.1.3across the new challenge packages.appuser.index.jsonregenerates successfully with all 30 challenges.