CTF Category Router
Given a challenge file or description, identify the category, then read the matching wiki page and apply its methodology. Always file the artifact and read the prompt before choosing.
Fingerprint -> route
| Signal |
Category |
Wiki page |
First moves / tools |
| ELF/PE binary + "get a shell" / nc to a port |
pwn |
[[binary-exploitation]] |
checksec; find offset (cyclic); [[pwntools]] template; leak libc |
| Binary + "find the flag" / crackme / no network |
rev |
[[reverse-engineering]] |
file,strings,checksec; [[radare2]]/Ghidra; ltrace; angr |
n,e,c / .pem / cipher / "encrypt" / base-looking blob |
crypto |
[[cryptography-attacks]], [[crypto-ctf-workflow]] |
identify primitive; RsaCtfTool; padding/XOR/hash-ext; CyberChef |
| .sol file / ABI+bytecode / contract address / web3 RPC endpoint |
blockchain |
[[smart-contract-web3-attacks]], [[defi-amm-exploitation]] |
[[slither]] static analysis; Foundry/Hardhat local fork to reproduce; flash-loan/AMM economic-exploit sims for DeFi |
| .pcap / .raw memory / disk image / .E01 |
forensics |
[[digital-forensics]] |
file,binwalk; [[volatility]] (mem); [[wiki/tools/tshark]]/Wireshark (pcap) |
| Innocuous image/audio / "look closer" |
stego |
[[steganography]] |
exiftool,binwalk,strings; zsteg/steghide/stegseek; spectrogram |
| URL / web app |
web |
existing hunt skills |
auto-triggers (sqli/xss/ssrf/idor/injection...) via triggers.json |
Cloud creds/console (Azure TAP+SP, *.core.windows.net, AWS keys, GCP) - no ports, only a REST/console surface |
cloud |
[[cloud-moc]], [[cloud-iam-attacks]] |
Skill(hunt-cloud): whoami; enumerate storage/SAS/blob + Key Vault (incl. prior secret versions) / IMDS - NOT the network-box driver |
$hash / NTLM / shadow / zip2john |
hash/crack |
[[hash-capture-and-cracking]] |
identify (hashid); [[wiki/tools/hashcat]] mode; [[password-cracking]] |
| "find the account/person/leak" / no file |
osint |
[[persona-tracing]], [[secret-hunting]], [[web-attack-surface]] |
person pivots + photo geolocation; [[git-exposure]] for repos |
python >>> jail / restricted shell / filtered interpreter |
misc/jail |
[[ctf-jail-escapes]] |
builtins/mro recovery, format-string pyjail, GTFOBins rbash escape |
Procedure
file challenge.*; read the prompt; note the remote (nc host port) if any.
- Match the strongest signal above (multiple may apply -> start with the most specific).
qmd_query "<category> <specific tech>" -> read the wiki page; apply its methodology + payloads.
- Re-fingerprint every extracted artifact (stego/forensics nest: image -> zip -> binary).
- Flag found -> note the technique. Novel trick -> Wiki Feedback: update the category page so it is captured.
Self-heal
If a category page is missing or thin for the technique used, add a ## <technique> section (or stub the page) before moving on, so the gap fills. Pages: crypto/[[cryptography-attacks]], rev/[[reverse-engineering]], forensics/[[digital-forensics]], stego/[[steganography]], pwn/[[binary-exploitation]] + heap/[[heap-exploitation]], misc-jail/[[ctf-jail-escapes]].
Report: category chosen + flag/blocker + any wiki update.
1---2name: ctf-category3description: CTF challenge router - fingerprint a challenge (file type / prompt / artifacts) into its category (pwn, rev, crypto, forensics, stego, web, osint, hash) and route to the matching wiki page, tools, and first moves. Wiki-first.4---56# CTF Category Router78Given a challenge file or description, identify the category, then read the matching wiki page and apply its methodology. Always `file` the artifact and read the prompt before choosing.910## Fingerprint -> route1112| Signal | Category | Wiki page | First moves / tools |13|---|---|---|---|14| ELF/PE binary + "get a shell" / nc to a port | **pwn** | [[binary-exploitation]] | `checksec`; find offset (`cyclic`); [[pwntools]] template; leak libc |15| Binary + "find the flag" / crackme / no network | **rev** | [[reverse-engineering]] | `file`,`strings`,`checksec`; [[radare2]]/Ghidra; `ltrace`; angr |16| `n,e,c` / .pem / cipher / "encrypt" / base-looking blob | **crypto** | [[cryptography-attacks]], [[crypto-ctf-workflow]] | identify primitive; `RsaCtfTool`; padding/XOR/hash-ext; CyberChef |17| .sol file / ABI+bytecode / contract address / web3 RPC endpoint | **blockchain** | [[smart-contract-web3-attacks]], [[defi-amm-exploitation]] | [[slither]] static analysis; Foundry/Hardhat local fork to reproduce; flash-loan/AMM economic-exploit sims for DeFi |18| .pcap / .raw memory / disk image / .E01 | **forensics** | [[digital-forensics]] | `file`,`binwalk`; [[volatility]] (mem); [[wiki/tools/tshark]]/Wireshark (pcap) |19| Innocuous image/audio / "look closer" | **stego** | [[steganography]] | `exiftool`,`binwalk`,`strings`; `zsteg`/`steghide`/`stegseek`; spectrogram |20| URL / web app | **web** | existing hunt skills | auto-triggers (sqli/xss/ssrf/idor/injection...) via triggers.json |21| Cloud creds/console (Azure TAP+SP, `*.core.windows.net`, AWS keys, GCP) - no ports, only a REST/console surface | **cloud** | [[cloud-moc]], [[cloud-iam-attacks]] | `Skill(hunt-cloud)`: whoami; enumerate storage/SAS/blob + Key Vault (incl. prior secret versions) / IMDS - NOT the network-box driver |22| `$hash` / NTLM / shadow / zip2john | **hash/crack** | [[hash-capture-and-cracking]] | identify (`hashid`); [[wiki/tools/hashcat]] mode; [[password-cracking]] |23| "find the account/person/leak" / no file | **osint** | [[persona-tracing]], [[secret-hunting]], [[web-attack-surface]] | person pivots + photo geolocation; [[git-exposure]] for repos |24| python `>>>` jail / restricted shell / filtered interpreter | **misc/jail** | [[ctf-jail-escapes]] | builtins/mro recovery, format-string pyjail, GTFOBins rbash escape |2526## Procedure271. `file challenge.*`; read the prompt; note the remote (`nc host port`) if any.282. Match the strongest signal above (multiple may apply -> start with the most specific).293. `qmd_query "<category> <specific tech>"` -> read the wiki page; apply its methodology + payloads.304. Re-fingerprint every extracted artifact (stego/forensics nest: image -> zip -> binary).315. Flag found -> note the technique. Novel trick -> **Wiki Feedback**: update the category page so it is captured.3233## Self-heal34If a category page is missing or thin for the technique used, add a `## <technique>` section (or stub the page) before moving on, so the gap fills. Pages: crypto/[[cryptography-attacks]], rev/[[reverse-engineering]], forensics/[[digital-forensics]], stego/[[steganography]], pwn/[[binary-exploitation]] + heap/[[heap-exploitation]], misc-jail/[[ctf-jail-escapes]].3536Report: category chosen + flag/blocker + any wiki update.