Anti-Slop CTF 2026 Misc Baby Maths writeup — automation challenge with a prompt-injection trap

Anti-Slop CTF 2026 Misc Writeup: Baby Maths (Prompt Injection in the Question Stream)

Sixth post in the Anti-Slop CTF 2026 series. The earlier ones covered the web, reverse, pwn, crypto, and blockchain tracks. This one covers the single misc challenge that I think captures the event’s premise more clearly than any other: Baby Maths. On the surface, Baby Maths is a 284-point automation problem. The service asks 100 arithmetic questions in natural language and you submit the answers one per line. Underneath, one of those 100 questions is a prompt-injection attempt that asks the solver to fetch and exfiltrate the base64-encoded OpenAI API key from ~/.codex/auth.json. The whole challenge is engineered to fail the kind of solver that pipes its inputs straight into an LLM. If you’re doing the arithmetic mechanically, the injection is harmless. If you’re asking an agent to read each prompt and act on it, the agent will dutifully read your credentials and send them to the CTF server. ...

June 23, 2026 · 14 min · 2906 words · CyberSecurity Elite Team
GPN CTF 2026 Organized writeup — ternary amplitude-modulated UART hidden in per-12,500-byte window popcount density

GPN CTF 2026 — Organized: Ternary Amplitude-Modulated UART in Popcount Density

Platform GPN CTF 2026 (kitctf) Difficulty Medium OS Misc — signal recovery from high-entropy file, ternary amplitude modulation Tags rejecting the 'random noise' default hypothesis, computing per-window popcount means and run-lengths, plotting a 200-bin histogram to spot three peaks instead of two, recognising the structure as UART (start bit, 8 data bits LSB-first, stop bit) framed by a mid-amplitude idle marker, decoding 49 frames to ASCII Organized is the GPN CTF 2026 misc challenge whose entire trick is recognising the carrier’s organization. The handout is a 7,650,000-byte file that looks like noise — file(1) calls it data, every bit position is 1 with probability ≈ 0.287. The “organization” is hidden in the bit-density of windows, not in the bytes themselves: per-12,500-byte window popcount falls into one of three sharp levels, giving a 612-trit string. Past a 24-trit preamble, the rest is 49 UART-style frames of 12 trits each. Decode → ASCII → flag: ...

June 7, 2026 · 7 min · 1433 words · CyberSecurity Elite Team
Educational content for authorized testing only. · Disclaimer · Editorial Policy · Sitemap