{
  "id": "sekaictf-2022-diffecient",
  "title": "Challenge archive: SekaiCTF 2022 - Diffecient",
  "challenge_name": "Diffecient",
  "year": 2022,
  "category": "Cryptography",
  "authors": [
    "deuterium"
  ],
  "mode": "interactive",
  "event": {
    "id": "sekaictf-2022",
    "series": "SekaiCTF",
    "label": "2022",
    "starts_at": "2022-09-30T16:00:00+00:00",
    "date_source": "https://ctftime.org/event/1619",
    "year": 2022
  },
  "article_url": "https://deut-erium.github.io/challenges/sekaictf-2022/diffecient/",
  "article_path": "/challenges/sekaictf-2022/diffecient/",
  "text_url": "https://deut-erium.github.io/challenges/sekaictf-2022/diffecient/challenge.txt",
  "text_path": "/challenges/sekaictf-2022/diffecient/challenge.txt",
  "json_url": "https://deut-erium.github.io/challenges/sekaictf-2022/diffecient/challenge.json",
  "json_path": "/challenges/sekaictf-2022/diffecient/challenge.json",
  "statement": {
    "label": "Original description",
    "text": "Welcome to the Diffecient Security Key Database API, for securely and efficiently saving tons of long security keys! Feel *free* to query your security keys, and pay a little to add your own to our state-of-the-art database.\n\nWe trust our product so much that we even save our own keys here!"
  },
  "notes": [
    "The archive has server source but no separate player handout. The linked file imports a secret module; organizer files are under the spoiler section.",
    "The original remote service is retired. Browser practice runs locally with the public dummy reward practice{local_dummy_reward}, not an event flag or authoritative score. No TCP endpoint is provided."
  ],
  "files": [
    {
      "name": "diffecient.py",
      "label": "diffecient.py (archived server source)",
      "kind": "server-source",
      "url": "https://deut-erium.github.io/assets/challenges/sekaictf-2022-diffecient/diffecient.py",
      "path": "/assets/challenges/sekaictf-2022-diffecient/diffecient.py",
      "bytes": 4221,
      "sha256": "bf4668f888f33cea4280e878300f3f738a8e46ae7a9ed25ba507844f65d3b245",
      "upstream_url": "https://raw.githubusercontent.com/project-sekai-ctf/sekaictf-2022/383b16da68c438c5d516e6f00b2716210141f7a4/crypto/diffecient/challenge/app/diffecient.py"
    }
  ],
  "spoilers": {
    "warning": "Spoilers: organizer files and upstream source, archive, or solution links may reveal answers. Modified downloads are identified below.",
    "files": [

    ],
    "source_url": "https://github.com/project-sekai-ctf/sekaictf-2022/blob/383b16da68c438c5d516e6f00b2716210141f7a4/crypto/diffecient/README.md",
    "archive_url": "https://github.com/project-sekai-ctf/sekaictf-2022/tree/383b16da68c438c5d516e6f00b2716210141f7a4/crypto/diffecient",
    "solution_url": "https://github.com/project-sekai-ctf/sekaictf-2022/tree/383b16da68c438c5d516e6f00b2716210141f7a4/crypto/diffecient/solution"
  },
  "licenses": [
    {
      "url": "https://deut-erium.github.io/assets/challenges/licenses/AGPL-3.0.txt",
      "path": "/assets/challenges/licenses/AGPL-3.0.txt",
      "name": "AGPL-3.0",
      "bytes": 34523,
      "sha256": "8486a10c4393cee1c25392769ddd3b2d6c242d6ec7928e1414efff7dfb2f07ef",
      "upstream_url": "https://raw.githubusercontent.com/project-sekai-ctf/sekaictf-2022/383b16da68c438c5d516e6f00b2716210141f7a4/LICENSE"
    },
    {
      "url": "https://deut-erium.github.io/assets/challenges/licenses/CC-BY-NC-SA-4.0.txt",
      "path": "/assets/challenges/licenses/CC-BY-NC-SA-4.0.txt",
      "name": "CC BY-NC-SA 4.0",
      "bytes": 19119,
      "sha256": "14d2138e3a8bd9448254f171b8e17130bf7104d2fd843ab0b924bd105fd00d5a",
      "upstream_url": "https://raw.githubusercontent.com/project-sekai-ctf/sekaictf-2022/383b16da68c438c5d516e6f00b2716210141f7a4/LICENSE.content.md"
    }
  ],
  "browser_practice": {
    "runtime": "diffecient",
    "variants": [
      "default"
    ],
    "launch_url": "https://deut-erium.github.io/challenges/sekaictf-2022/diffecient/#browser-practice",
    "launch_path": "/challenges/sekaictf-2022/diffecient/#browser-practice"
  }
}
