If you want to get good at hacking, nothing beats Capture The Flag. CTFs take dry theory — "SQL injection exists," "buffers can overflow" — and turn it into something you do with your own hands until it clicks. You find a hidden string called a "flag," you submit it, you score points. Simple loop, endlessly deep.
This is a practical map of that world: where to start, how to practise, the tools you'll live in, and how to grow from "what is this terminal" to actually placing in competitions. I've kept the well-known stuff and added the hidden gems people usually only discover years in.
What a CTF actually is
A CTF challenge hides a flag (usually something like flag{y0u_f0und_me}) behind a security problem. Crack the problem, get the flag. Challenges come in two formats: Jeopardy-style (a board of standalone puzzles by category — the most common) and Attack-Defense (you defend your own services while attacking everyone else's — this is the hard, team-based stuff you graduate into).
Before anything else, understand the categories, because each one trains a different muscle:
- Web Exploitation — SQL injection, XSS, file inclusion, auth bypass, insecure uploads. The most common category and the best place for beginners.
- Cryptography — encoding, hashing, breaking weak or custom ciphers, RSA and XOR attacks.
- Reverse Engineering — pulling apart compiled binaries and APKs to find hidden logic, keys, or flags.
- Pwn / Binary Exploitation — buffer overflows, memory corruption, defeating ASLR/DEP, popping a shell. The steepest curve, the most respected.
- Forensics — disk images, memory dumps, PCAP network captures, and steganography (flags hidden in images/audio).
- Miscellaneous — OSINT, programming puzzles, hardware, anything creative.
My advice: start with Web and Crypto to build confidence, then pick one of Reversing or Pwn to go deep on. Depth in one category beats being shallow in all six.
Step 1 — Start here (beginner platforms)
Don't jump into a live competition on day one. Warm up on platforms built for learning, where challenges come with hints and writeups:
- picoCTF — https://picoctf.org/ — the gold standard for beginners; year-round practice gym plus learning paths.
- CTFlearn — https://ctflearn.com/ — bite-sized interactive challenges across every category.
- Hacker101 CTF — https://ctf.hacker101.com/ — real-world-style web challenges from HackerOne; doubles as a path into bug bounty.
- OverTheWire (Bandit) — https://overthewire.org/wargames/ — the classic Linux/terminal wargame. Do Bandit first, full stop. It teaches the command line you need for everything else.
- TryHackMe — https://tryhackme.com/ — guided rooms and structured, hand-held learning paths. Best on-ramp if you like structure.
- CyberDefenders — https://cyberdefenders.org/ — blue-team / defensive CTFs if security operations is your thing.
- Google CTF Beginners Quest — https://capturetheflag.withgoogle.com/ — a friendly guided intro from Google.
- SANS Holiday Hack Challenge — https://holidayhackchallenge.com/ — a genuinely fun festive event every December for all levels.
Pro tip that matters more than any tool: consistency beats talent. One challenge a day, every day, and read the writeup even when you solve it.
Step 2 — Practise in real environments
Once puzzles feel comfortable, move to platforms with full vulnerable machines and web labs:
- Hack The Box — https://www.hackthebox.com/ — industry-leading boxes and challenges; HTB Academy is superb for structured theory.
- PortSwigger Web Security Academy — https://portswigger.net/web-security — the free resource for web security, written by the makers of Burp Suite. Non-negotiable if you like web.
- Root Me — https://www.root-me.org/ — huge range, beginner to expert.
- PentesterLab — https://pentesterlab.com/ — practical, exercise-driven pentest training.
- VulnHub — https://www.vulnhub.com/ — downloadable vulnerable VMs you run offline in your own lab.
- HackThisSite — https://www.hackthissite.org/ — old-school challenges and missions.
Build a home lab with deliberately vulnerable apps
Break things safely on your own machine (VirtualBox/VMware + Kali):
- DVWA — https://github.com/digininja/DVWA — classic PHP/MySQL app for common web vulns.
- OWASP Juice Shop — https://owasp.org/www-project-juice-shop/ — modern, realistic, genuinely fun Node.js target.
- WebGoat — https://owasp.org/www-project-webgoat/ — Java app that teaches secure coding through hands-on lessons.
- Metasploitable — https://sourceforge.net/projects/metasploitable/ — a Linux VM stuffed with vulnerable services for exploitation practice.
The mindset here: break things, learn why, fix them. That loop is what turns practice into understanding.
Step 3 — Learn the tools
You don't need hundreds of tools. You need to master a handful. Command-line essentials:
- Nmap — https://nmap.org/ — network scanning and discovery; your eyes on the target.
- Gobuster — https://github.com/OJ/gobuster — directory/file brute-forcing to find hidden content.
- ffuf — https://github.com/ffuf/ffuf — blazing-fast web fuzzer.
- The ProjectDiscovery stack — httpx (HTTP probing), naabu (fast port scanning), nuclei (template-based vuln scanning with thousands of checks). Modern, fast, and industry-standard.
- WAFW00F — https://github.com/EnableSecurity/wafw00f — fingerprint web application firewalls before you attack.
Beyond the command line, learn these per category: Burp Suite (web), Ghidra and radare2/rizin (reversing), pwntools and GDB/pwndbg (pwn), CyberChef for encoding/crypto, and Wireshark + Volatility for forensics. Bookmark GTFOBins and LOLBAS for privilege escalation — you'll use them constantly.
Step 4 — The workflow (how to approach any challenge)
Good hackers aren't faster typists; they follow a repeatable process:
- Recon — gather info about the target and its services (
nmap,subfinder,theHarvester, Shodan,amass). - Enumerate — find what's running and reachable (
ffuf,gobuster,nikto,enum4linux). - Analyze — understand it and find the weakness (Wireshark, Burp, Ghidra, CyberChef).
- Exploit — apply the right technique (
sqlmap, Metasploit,hydra, searchsploit). - Escalate — go deeper, get higher privileges (linPEAS, winPEAS, GTFOBins).
- Capture — grab the flag, and write down what you did.
Habits that separate people who improve from people who plateau: read the whole prompt (every word is a hint), take notes on what you try, don't be afraid to try weird approaches, take a break when stuck (a fresh mind sees new paths), and always read writeups afterward — even for challenges you solved.
Step 5 — Compete and level up
When practice feels easy, enter real events. CTFtime (https://ctftime.org/) is the hub for finding competitions, rankings, and — crucially — writeups. Join or form a team; CTFs are a team sport, and you'll learn faster surrounded by people who know more than you.
The big leagues, when you're ready to get humbled:
- DEF CON CTF — https://nautilus.institute/ — the most iconic hacking competition in the world.
- PlaidCTF — https://plaidctf.com/ — elite Jeopardy-style event.
- CSAW CTF — https://ctf.csaw.io/ — student-run, learning-focused, great for newer competitors.
- HITCON CTF — https://ctf.hitcon.org/ — Asia's premier competition.
- Dragon CTF — https://dragonsector.pl/, 0CTF/TCTF — https://0ops.sjtu.edu.cn/, RuCTF — https://ructf.org/, and Hack.lu CTF — https://ctf.hack.lu/ round out the world-class circuit.
Learn from the best
Reference material and creators worth following:
- CTF Field Guide — https://trailofbits.github.io/ctf/ — curated learning paths for every category.
- Awesome CTF — https://github.com/apsdehal/awesome-ctf — the master list of tools, wordlists, and resources.
- CTF Tools — https://github.com/zardus/ctf-tools — install script for common tooling.
- YouTube: LiveOverflow (deep, intuitive concept videos), IppSec (walkthroughs of retired HTB boxes — the best way to learn methodology), and John Hammond (clear, practical, beginner-friendly).
Hidden gems most people find too late
These aren't on the usual beginner lists, but they're where real skill gets built:
- pwn.college — a free, university-grade course (from Arizona State) that takes you from zero to serious binary exploitation. Probably the single most underrated resource in security.
- CryptoHack — https://cryptohack.org/ — makes cryptography genuinely fun and gamified. The best crypto trainer, period.
- Cryptopals — https://cryptopals.com/ — the legendary hands-on crypto challenge set. Tough, timeless, and it teaches you why crypto breaks.
- ROP Emporium — https://ropemporium.com/ — laser-focused on one skill: return-oriented programming, the heart of modern exploitation.
- Microcorruption — https://microcorruption.com/ — an embedded-security CTF disguised as a game; brilliant intro to assembly and pwn.
- pwnable.kr and pwnable.tw — the classic binary-exploitation wargames the pros cut their teeth on.
- Exploit Education (Phoenix/Nebula) — https://exploit.education/ — structured, well-designed exploitation exercises.
- crackmes.one and Flare-On — endless reverse-engineering practice, plus Mandiant's annual RE competition (Flare-On) that's a rite of passage.
- picoGym — picoCTF's year-round archive of past challenges. Free, huge, categorized — practise anytime.
- For forensics/stego, keep Aperi'Solve, zsteg, steghide, and exiftool in your back pocket.
The rules that keep this legal
None of this works without ethics. Only ever practise on platforms and machines you're authorized to touch. Respect the rules and other players. Never point these skills at systems you don't own or have written permission to test — that's the line between a security career and a criminal record. Learn like an attacker, act like a defender, and share what you learn.
The bottom line
Pick one beginner platform today. Solve challenges, read writeups, take notes, and build a personal knowledge base. Join a community (the Discord servers around these platforms are gold). Then push into harder challenges before you feel ready — mistakes are the progress.
It's not about being the best. It's about being better than you were yesterday. Every flag you capture is a skill you'll use for real. Keep practicing, keep exploring, keep securing.