Challenge

A binary that performs some XOR operations and makes a network request. No flag in the binary itself.

Approach

  1. Open in Ghidra. The binary XORs a hardcoded byte array with a repeating key to produce a URL.
  2. Extract the ciphertext and key from the binary:
1
2
3
4
5
ct  = bytes([0x2e, 0x1f, 0x0a, ...])  # from .data
key = b"meow"
url = bytes(c ^ key[i % len(key)] for i, c in enumerate(ct))
print(url.decode())
# https://files.catbox.moe/xxxxxx.txt
  1. curl the resulting catbox.moe URL to retrieve the flag.

Flag

boroCTF{lEts_gO_B3y0nd_b1nar1e$}