zwesty
Write-ups / Day 8 / Warmups
Day 8 · Thu, Oct 8 · Warmups

Entity Relations

Prey slaughtered

Recognising HTML character references, layered decoding, reusing a decoder chain

STTMClaude Homebase Both

Flags are shortened to their first 8 and last 4 characters because they're unique per team.

Challenge ID
warmups-day-08 (+ /time_trial, /mastery)
Solved
2026-10-08: Single Solve, Time Trial, and Mastery all CORRECT on the first attempt; 43 s from the first start to the last CORRECT
Player
Zwesty (solo), with Claude Code (Opus 5.5)

The challenge

"The browser understands. Do you?"

One question, message: decode the assigned blob completely; its final non-empty line names the answer slug (three lowercase words and a number, hyphenated).

Reading the prompt: what it said we'd need

Clue What it pointed to What I did about it
"The browser understands" Something a browser renders but a human doesn't read: HTML character references Added an html-entities decoder
A Warmup on Day 8 Days 2–7 each added one encoding; Mastery mixes them line by line Put the new decoder in front of Day 4's chain, which already holds all of them

What was in the files

  • Single Solve: 620 bytes of decimal references (Nic…), one layer.
  • Time Trial: the same template with a new slug (609 bytes).
  • Mastery: one zip of 38 blobs, one per set.

Single Solve

Our solver decodes &#NN;, &#xNN;, and named references (&, !…). It only fires when there are at least two references and the text changes, so plain text containing R&D isn't touched. Answer: jovial-rocket-marble-82, CORRECT (1be44131…e9a4).

Its tests (6): the real blob; decimal, hex (both cases), and named/mixed references; entities wrapping Base64; an 8-line Mastery-style blob mixing every earlier encoding; plain text with a stray &; and the Day 2–7 blobs still decode.

Time Trial

started_at  2026-10-08T20:13:58.951Z   (no deadline field in the reply)
start        719 ms
artifact     458 ms
solve          0 ms
submit       700 ms
TOTAL       1877 ms
result      CORRECT   flag d1b1478c…e72a

Mastery

started_at  2026-10-08T20:14:04.689Z   38 sets
start        579 ms
artifact     439 ms
solve        139 ms
submit      6294 ms
TOTAL       7450 ms
result      CORRECT   flag 9db1ab5e…2b52

Time to solve

All three modes were solved in 43 s, from the Single Solve start at 20:13:27 UTC to the Mastery CORRECT at 20:14:10 UTC, each on the first submit: the Single Solve in 8 s, the Time Trial in 1.9 s, and the Mastery in 7.5 s.

Takeaways

  • One decoder per day, one chain for all. Adding the new layer in front of Day 4's chain made the Mastery mix work with no other change.
  • Guard new decoders against false positives: a minimum count and "must change the text" kept ordinary & alone.
  • The start replies had no deadline field today. Our solver doesn't depend on it.