2025.08.16Blog on CTFs

Challenge archive: SekaiCTF 2025 - Law and Order

SekaiCTF 2025 - Cryptography.

Section
Blog on CTFs
Event began

By deuterium.

Description excerpt

My friends were the FROST to implement sharing signatures for flag and ensured to always include me but somehow it’s still not working?

Read this challenge as plain text or JSON.

Browser practice

Law and Order terminal

Practice only. Rewards are public dummy values, not event flags. Completion is saved separately on this device when storage is available. Nothing runs until you choose Start.

Browser practice needs JavaScript and module Worker support.

Enter sends; Shift+Enter adds a line. Input is not echoed in program output. Stop interrupts computation; Reset clears the session without starting another.

Browser limits and console API

Limits use UTF-8 bytes: 2 MiB per input line, 4 MiB and 4096 lines per batch (including separators), 8 MiB output per operation, and a 1 MiB visible transcript. Earlier output is replaced with a truncation notice. Setup progress is separate, capped at 1024 characters and four updates per second. Original challenge deadlines still apply after setup; there is no extra setup deadline.

The console API is window.challengePractice: start(), send(stringOrLines), stop(), and reset(). Select the version above before starting. Start and Send resolve at the next input prompt or program exit with {output, state, solved}; output contains only that operation's program text. Concurrent operations are rejected. Stop, Reset, deadlines and Worker failures reject in-flight operations; terminal errors carry partial output in error.result.

Strings accept LF or CRLF; a final newline ends the last line without adding another blank line. An empty string sends one blank line. Arrays contain literal lines without LF. Unused lines are discarded if the program exits. Reset keeps saved completion. Public dummy rewards do not unlock the original answer checker.

Corrected is the default Law and Order source version; Released retains the archived released behavior. Completion is recorded separately for each version.

Files

These files describe the original interactive service. The browser practice above is local; no TCP endpoint or retired remote service is connected.

The organizers report that the released handout was an incorrect version. The archived server source and solution are for the corrected version; they do not match the released handout.

The original remote service is retired. Browser practice offers corrected (default) and released variants with a public dummy reward.

Download

Sh
mkdir -p sekaictf-2025-law-and-order
cd sekaictf-2025-law-and-order
curl --fail --location --output challenge.txt \
  "https://deut-erium.github.io/challenges/sekaictf-2025/law-and-order/challenge.txt"
curl --fail --location --output challenge.json \
  "https://deut-erium.github.io/challenges/sekaictf-2025/law-and-order/challenge.json"
curl --fail --location --output released-chall.py \
  "https://deut-erium.github.io/assets/challenges/sekaictf-2025-law-and-order/released-chall.py"
curl --fail --location --output corrected-chall.py \
  "https://deut-erium.github.io/assets/challenges/sekaictf-2025-law-and-order/corrected-chall.py"

Sources and solutions (spoilers)

The excerpt omits the old launcher URL and historical bounty announcement.

All challenges · CTF tutorials