{} The Go Reference

Attack to defend

Security in Go

Go is the language of modern security tooling — static binaries, cheap concurrency, and a strong crypto stdlib. This track teaches how attacks work so you can stop them: recon and scanning, fuzzing and packet analysis, cryptography done right, and secure coding from injection defense to the supply chain. Offensive techniques are educational and lab-scoped, always paired with the defense.

⚠️ Authorized testing only

Everything offensive here is for systems you own or have written permission to test — a home lab, a CTF, or an engagement with a signed scope. Scanning, probing, or attacking systems you don't control is illegal in most jurisdictions. Learn the techniques to build defenses, not to cause harm.

Your security progress

Mark a topic “learned” on its page and watch the bars fill.

Skill map

Learned nodes light up — the glowing one is your next step. Click any node to jump in.

Security Foundations

The mindset before the tools — why Go is the language of modern security tooling, the rules of authorized testing, and how to build and ship a tool responsibly.

Recon & Offensive Testing

How attacks actually work, so you can defend against them — port scanning, DNS and HTTP reconnaissance, fuzzing for bugs, and reading raw packets. Lab-scoped and defense-paired.

4 · Intermediate Port Scanning

How a TCP connect scanner works and why Go is ideal for it — a bounded concurrent scanner, banner grabbing for service detection, and the defenses (rate limits, detection, least exposure) that stop it.

✦ Complete · ⏱ 5 min
4.5 · Intermediate Network Recon & Service Detection

Turning open ports into a picture of a network — service and version detection, OS fingerprinting, banner analysis, and assembling a recon report — plus the defenses that reveal less.

✦ Complete · ⏱ 5 min
5 · Intermediate DNS Enumeration

Mapping a target's attack surface through DNS — record types and lookups, concurrent subdomain brute-forcing, zone transfers as a misconfiguration, and the defenses that limit what DNS reveals.

✦ Complete · ⏱ 5 min
6 · Intermediate HTTP Reconnaissance

Profiling web targets in Go — a custom HTTP client, fingerprinting tech from headers, content and path discovery, and the response-hardening defenses (security headers, generic errors, rate limits) that blunt it.

✦ Complete · ⏱ 5 min
7 · Advanced Fuzzing for Bugs

Finding crashes and vulnerabilities by feeding malformed input — a runnable mutation fuzzer that discovers a parser bug, Go's built-in coverage-guided fuzzing, and why fuzzing your own code is the best defense.

✦ Complete · ⏱ 5 min
8 · Advanced Packet Analysis

Reading the wire — parsing IP/TCP headers from raw bytes by hand, live capture with gopacket, and using packet analysis defensively for intrusion detection and anomaly monitoring.

✦ Complete · ⏱ 4 min

Cryptography

Go's crypto toolkit done right — hashing and password storage, authenticated symmetric encryption, TLS and PKI, and the classic mistakes that break weak crypto.

Defensive Engineering

Writing software that resists attack — input validation and injection defense, authentication and authorization, secrets management, and securing the supply chain.

12.5 · Beginner The OWASP Top 10

The industry's reference list of the most critical web app security risks — what each category means, how it shows up in Go, and the defensive habit that neutralizes it.

✦ Complete · ⏱ 4 min
13 · Intermediate Input Validation & Injection Defense

The bug class behind most breaches — why injection happens (mixing data with code), and the structural fixes: parameterized queries, html/template auto-escaping, allowlist validation, and safe path handling.

✦ Complete · ⏱ 6 min
13.5 · Intermediate SSRF & Request Forgery

Server-Side Request Forgery and its cousin CSRF — how an attacker turns your server (or your user's browser) into a confused deputy, and the allowlist / token defenses in Go.

✦ Complete · ⏱ 4 min
14 · Intermediate Authentication & Authorization

Proving who you are and deciding what you may do — sessions vs tokens, secure token generation and constant-time checks, password verification, and least-privilege authorization (RBAC).

✦ Complete · ⏱ 5 min
14.5 · Intermediate OAuth 2.0 & OpenID Connect

Delegated authorization (OAuth2) vs authentication (OIDC) — the Authorization Code + PKCE flow, access vs ID tokens, and the mistakes that turn 'sign in with…' into account takeover.

✦ Complete · ⏱ 4 min
15 · Intermediate Secrets Management

Keeping API keys, passwords, and signing keys out of your code, repo, logs, and binary — config from the environment, secret managers, redaction, and rotation.

✦ Complete · ⏱ 4 min
16 · Intermediate Hardening HTTP Services

Turning a working Go server into a hardened one — timeouts and body limits against resource exhaustion, security headers, panic-recovery and rate-limiting middleware, and graceful shutdown.

✦ Complete · ⏱ 5 min
16.5 · Intermediate Container Image Security

Shipping a Go binary in a container that's small and hard to attack — minimal/distrolesse base images, non-root, pinned-by-digest, scanned, and the content-addressing that makes 'pinning' real.

✦ Complete · ⏱ 4 min
17 · Advanced Supply-Chain Security

Securing everything your code depends on — module integrity via go.sum and the checksum database, govulncheck for known CVEs, minimizing dependencies, pinning, and defending against typosquatting and build-time attacks.

✦ Complete · ⏱ 5 min

🐹 Why Go is the security industry's favorite

A single static binary that cross-compiles to any target, drops onto a box with no dependencies, and runs hundreds of concurrent connections cheaply — that's exactly what both red teams and blue teams want. From scanners and fuzzers to TLS servers and detection pipelines, Go's stdlib (net, crypto, encoding) covers most of what a security tool needs out of the box.