Flash CTF - Cryptopus

1. Challenge Overview

We are given a short prompt about communicating numbers with octopi, along with an encoded string of space-separated numbers:

I've spent years trying to communicate with non-human intelligence, and I've made a breakthrough! I can finally communicate numbers with octopi! Unfortunately, I can't figure out what they mean...

123 153 151 154 154 102 151 164 173 60 143 164 60 160 165 65 137 155 60 162 63 137 154 61 153 63 137 60 143 67 141 154 160 165 65 175

2. Analysis & Clues

A quick inspection of the problem statement gives away the encoding scheme:

  1. The Pun / Clue: The challenge references octopi (8 tentacles), pointing directly toward Base 8 (Octal).
  2. Character Set: Looking closely at the numbers provided:
    • None of the digits exceed 7 (all digits range strictly from 0 to 7).
    • Standard printable ASCII byte representations in octal typically fall in the range 040176 (e.g., 'S' = 123₈, 'k' = 153₈, '{' = 173₈, '}' = 175₈).

3. Solution

Method 1: CyberChef

The quickest way to solve this is to load the payload into CyberChef and apply the From Octal operation:

  1. Input: 123 153 151 154 154 102 151 164 173 60 143 164 60 160 165 65 137 155 60 162 63 137 154 61 153 63 137 60 143 67 141 154 160 165 65 175
  2. Recipe: From Octal('Space')
  3. Output: SkillBit{0ct0pu5_m0r3_l1k3_0c7alpu5}

Method 2: Python One-Liner

Alternatively, this can be decoded via a small Python script:

payload = "123 153 151 154 154 102 151 164 173 60 143 164 60 160 165 65 137 155 60 162 63 137 154 61 153 63 137 60 143 67 141 154 160 165 65 175"

flag = "".join(chr(int(x, 8)) for x in payload.split())
print(flag)

4. Flag

SkillBit{0ct0pu5_m0r3_l1k3_0c7alpu5}

Interested in joining our team? Let’s connect!