Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
owasp-ctf-in-a-box — Self-hosted OWASP CTF kit: one box, one free GitHub org, no cloud dependencies | Kitploit
Tools/GitHubGitHub/owasp/owasp-ctf-in-a-box
Container SecurityVulnerability AnalysisSecurity VirtualizationWeb SecurityCTFPenetration TestingDevSecOpsLearning & EducationLabs & Practice
GitHubowasp/owasp-ctf-in-a-box

owasp-ctf-in-a-box

Self-hosted OWASP CTF kit: one box, one free GitHub org, no cloud dependencies

23171689 days agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View Repository
Website

OWASP CTF in a Box: a fox guarding a server box with a capture-the-flag flag, beside the OWASP mark

OWASP CTF in a Box

A self-hosted control plane for security-learning events — one box, one free GitHub org.
Run it for a university, a high school, an OWASP chapter, a meetup.

ci docs code license MIT docs license CC BY-SA 4.0 OWASP incubator project

Walkthrough of the contestant leaderboard: sweeping the score-over-time graph to read every team's points at that instant, then expanding the leading team to its members, its per-module totals, its per-target breakdown and the list of flags it has open

What this is

Everything a security event needs, on one machine you control: GitHub sign-in, teams, a live leaderboard, an organizer admin panel, and the scoring behind it. You pick which challenge modules run, alone or together on one leaderboard:

  • Secure Development — contestants fork a deliberately vulnerable app, patch the flaw, and open a pull request. The patch is tested automatically and scored. It teaches defence, not attack.
  • Quiz — single- and multi-select security questions.
  • Jeopardy — a board of flag challenges in categories, with optional paid hints.
  • AI — prompt-injection and guardrail challenges hosted on an external site, scored back on the leaderboard.

It runs from Docker Compose on a laptop, a spare desktop or a small VPS, plus one free GitHub org if you run Secure Development. The scoring rubrics for all six vulnerable apps ship in the box, so there is no private image to request and no scoring code to write. The kit is free and nothing phones home; a cloud host or VPS costs whatever your provider charges.

Who it's for: course instructors, club organizers, OWASP chapter leads, workshop facilitators, and security teams running an internal training day — anyone who wants to run an event without becoming a cloud operator.

Status

v1.0, proven at a real event. The first live event ran on October 7–9, 2026, on the AWS module behind Cloudflare:

Teams28
Players41 (24 attempted or scored)
Secure Development scores ingested498, none dropped
Requests servedabout 465,000 on the two busiest days

Known limits are listed in the open in Status and upstream dependencies.

Quickstart

See it running in two minutes — no GitHub org, no OAuth app, nothing to configure. You need Docker with Compose v2 and openssl:

git clone https://github.com/OWASP/owasp-ctf-in-a-box
cd owasp-ctf-in-a-box
./scripts/dev-stack up

It builds the stack, seeds a demo leaderboard and prints the URL to open. ./scripts/dev-stack score <login> juice-shop 3 lands three more solves live; ./scripts/dev-stack down tears it down.

Run a real event with the guided wizard. You also need the gh CLI, signed in, and a free GitHub org if the event runs Secure Development:

./setup/ctf-setup.sh check      # verify the tooling
./setup/ctf-setup.sh            # guided, prompts for values, resumable

It asks only for what your event needs, writes .env, does every step it can automate, and walks you through the few that need the GitHub website. --dry-run previews the steps that change anything, once .env has the admin logins (and the org, if you run Secure Development). Everything else — the event's name, which modules run, which targets — is set at runtime in /admin, so there is no config file to edit. With Secure Development, the five containers idle at about 665 MB, so give the event box about 2 GB of memory; without it, scorer and sync do not run.

The ctf-setup.sh guided wizard: ASCII banner and step-by-step prompts

In a cloud instead? docs/aws.md (Terraform: ECS Fargate, ElastiCache and an ALB) or docs/fly.md (one Fly machine). Fly runs the whole stack, scorer included, so it needs a scorer image (SCORE_IMAGE) and suits an event that runs Secure Development; a Quiz/Jeopardy-only event uses Compose or AWS. Every step in detail: docs/hosting.md.

The modules

Secure Development — a GitHub Action in the contestant's fork runs the target's tests against the patch and posts the result on the pull request. The box polls for it about every 30 seconds and the leaderboard recomputes every 10, so a score normally shows within about 40 seconds of the score comment. Six targets, 321 challenges. An unpatched app scores 0, and a correct patch earns its points; CI checks both directions.

Quiz — graded the moment it is answered (all-or-nothing on multi-select), with an attempt cap and a retry cooldown. Needs no GitHub.

Jeopardy — flags are trimmed and matched case-insensitively unless a challenge is marked case-sensitive, with a submission cooldown and optional paid hints. Challenges can be hidden or scheduled for later release. Needs no GitHub.

AI — each contestant gets a personal launch link to the external challenge site; a solve reports back through that site's callback or a flag typed into the app. Needs no GitHub. The site's side of the contract is in docs/ai-module.md.

Quiz, Jeopardy and AI content is written in /admin or imported as one JSON bundle. Around whichever modules you enable, the platform provides:

Download Tool