Hello, writeups
·2 min read#meta#ctf
This first post is a showcase of everything the blog can render: rich text, syntax-highlighted code with a copy button, math, tables, and the auto-built table of contents above. Treat it as a smoke test you can actually read.
Text and formatting#
You get the usual: bold, italic, strikethrough, inline code, and
links. Footnote-style asides work as blockquotes:
"Given enough eyeballs, all bugs are shallow." — and a writeup is just an extra pair of eyeballs.
Lists#
Unordered, with nesting:
- Recon
- passive (OSINT)
- active (scanning)
- Exploitation
- Post-exploitation
Ordered:
- Find the bug
- Understand why it works
- Write it up so future-you remembers
Code#
A fenced block gets Shiki highlighting and a Copy button on hover:
const flag = atob("ZmxhZ3toZWxsb30=");
console.log(flag); // flag{hello}
Another language, because why not:
def xor(data: bytes, key: bytes) -> bytes:
return bytes(b ^ key[i % len(key)] for i, b in enumerate(data))
Tables#
| Stage | Tooling | Notes |
|---|---|---|
| Recon | nmap, ffuf |
enumerate everything |
| Exploit | pwntools |
scripting is leverage |
| Writeup | this blog | markdown all the way |
Math#
Inline math renders too: the time complexity is , and Euler's identity is .
Display math gets its own centered block:
That's the tour. Real writeups land here next.