Post

LIT CTF 2023 - incredible

Description

Category: Cryptography

https://docs.google.com/spreadsheets/d/1_YWRWjIUTPfbJ5ZWeYyiAi69PkI-F-GGKa6stQlNtEA/edit?usp=sharing.

Wrap flag with LITCTF{}.

incredible!! - Sheet1.csv (backup)

Resolution

When I saw the spreadsheet it immediately reminds me an array of pixels (because of Image Processing courses I had).

I downloaded it as csv so I can import it easilly with numpy:

1
2
3
import numpy as np

A = np.loadtxt("incredible!! - Sheet1.csv", delimiter=",", dtype=float)

Next we need to convert it to an actual image, i.e pixels values need to be integers between 0 and 255.

1
2
3
4
5
# Value normalization then multiply by max pixel value (255)
A = 256 * A / np.max(A)

# Convert to 8-bit integers (0-255)
A = A.astype(np.uint8)

Now we can save the image using pillow:

1
2
3
from PIL import Image

Image.fromarray(A).save("image.png")

We got this image: Result image

The image is very small but when we zoom enough we can recognize some characters:

Zommed

CONDITIONAL_FORMATTING11!

I submitted it with the flag format and it was indeed the flag: LIT{CONDITIONAL_FORMATTING11!}

Note

After reading the flag, I find out the intented way to solve the challenge.

We needed to use conditional formatting.

I highlighted all cell with value higher than 1 and I found the flag too:

Conditional formatting

This post is licensed under CC BY 4.0 by the author.