MetaRed 2022 3rd STAGE - Quemada Broadcast
Quemada Broadcast is a web challenge that was part of the MetaRed CTF 2022 (3rd STAGE).
With the challenge, we get the following info.
We have intercepted a broadcast coming from the "La Quemada" in Zacatecas, Mexico. It appears to be grouped in 7 bits bunches, but we can't decode it. Can you help us to understand what do they trying to tell us? La Quemada represents the most important monumental settlement in northern central Mexico for its architecture.
In the place, there is a large hall of columns with its square, a field for the large ball game in the traditional form of āIā, and a pyramidal basement called Votive Pyramid.
Note> 1. run the docker container, instructions below, 2. access app at: http://127.0.0.1:5000
docker run --rm -it --name quemada -p 5000:5000 hackadvisermx/metaredctf-quemada-broadcast
First approach
We start by launching the docker container with the supplied command. On opening the URL in our Browser we notice a ~
character. On refreshing, a number appears. Doing multiple refreshes we notice that we see 1
or 0
appearing. With the info that the broadcast is grouped in 7 bit parts, we decided to write a script to automatically get all messages from the server separated after receiving 7 numbers. We assume that the ~
character is the divider of the message.
import requests
i = 0
bits = ''
while True:
i += 1
r = requests.get('http://127.0.0.1:5000/seq/e995c28a-9095-49a2-837d-20b2bb50f7f2')
if r.text != '~':
bits += r.text
if i % 7 == 0:
print(bits)
bits = ''
else:
break
Using the following script, we get this message out of our broadcast.
1011010
1101101
1111000
1101000
1011010
0110000
0110001
1011001
1100101
1111010
1100100
1000011
1100001
1011000
1010010
1010100
1100100
1000111
1000110
1110101
1011010
1000111
1000110
1111001
1011010
1000101
1101000
1101100
1100010
1001000
1000010
1010110
1100011
0110001
1000010
1110011
1011010
1010111
1000110
1111010
1011010
1011000
0110000
0111101
Solution
Putting this into CyberChef and decoding it from binary using byte length 7 we get the following message.
ZmxhZ01YezdCaXRTdGFuZGFyZEhlbHBVc1BsZWFzZX0=
Applying CyberChef’s magic or our good eyes we see that this is base64 and get the flag by decoding.
Flag
The flag is “flagMX{7BitStandardHelpUsPlease}”.