2023.08.25Blog on CTFs

Challenge archive: SekaiCTF 2023 - Diffecientwo

SekaiCTF 2023 - Cryptography.

Section
Blog on CTFs
Event began

By deut-erium.

Original description

Welcome to the Diffecientwo Caching Database API for tracking and storing content across social media. We have repurposed our security product, as saving the admin key was probably not the best idea.

We have decided to change our policies and to achieve better marketing, we are offering free API KEY to customers sharing #SEKAICTF #DEUTERIUM #DIFFECIENTWO #CRYPTO on LonelyFans (our premium business partner).

Read this challenge as plain text or JSON.

Browser practice

Diffecientwo 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.

Files

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

The original remote service is retired. Browser practice runs locally with the public dummy reward practice{local_dummy_reward}; it does not award an event solve.

Download

Sh
mkdir -p sekaictf-2023-diffecientwo
cd sekaictf-2023-diffecientwo
curl --fail --location --output challenge.txt \
  "https://deut-erium.github.io/challenges/sekaictf-2023/diffecientwo/challenge.txt"
curl --fail --location --output challenge.json \
  "https://deut-erium.github.io/challenges/sekaictf-2023/diffecientwo/challenge.json"
curl --fail --location --output diffecientwo.py \
  "https://deut-erium.github.io/assets/challenges/sekaictf-2023-diffecientwo/diffecientwo.py"

Sources and solutions (spoilers)

The old event link now points to the Diffecient archive page.

All challenges · CTF tutorials