Post

BroncoCTF 2024 - Writeups

This is a writeup for some forensics, OSINT, cryptography and misc challenges from BroncoCTF 2024. Although the CTF was aimed at beginners, some of the challenges proved to be quite difficult, featuring unique and well-crafted problems tailored specifically for the forensics category. It was also clear that the organizers have a particular fondness for binary.

Wario Party [Forensics]

Question: Who is the true hero of the Mario Party games you might ask? Look inward and you might find it at the intersection of Mario’s color and the number of brothers.

Flag: bronco{b0ws3r_g0t_th4t_dumpy}

We are given an image to investigate. Reading the description carefully, it mentioned something about Mario’s color (Red) and the number of brothers (2). Using this information, analyzing the image shows that there data encoded in Red 2.

forensics1

So we can use online tools like StegOnline to extract the hidden data embedded within the image.

forensics2

The extracted data seems to be an image of another puzzle with Wario and Waluigi. Analyzing the image, it seems that it is a binary string where Wario=0 and Waluigi=1. Converting the binary to ASCII, the flag can be obtained.

RealHeroOfMarioDecoded

forensics4

Boom [Forensics]

Question: With all these talks of arbitration, things are tense here around the office. I feel like people are going to explode at any moment. I gotta watch where I step before I accidentally bring something up and uncover something I didn’t want to.

Hint: Look into Minesweeper and hex

Flag: bronco{bo0m!}

We are given a Minesweeper board file to investigate. Analyzing the file content, several hex data can be identified.

forensics5

Researching online about this file type, I came across MZRG which allows players to load custom Minesweeper boards. The flag can be identified after loading the Minesweeper board.

forensics6

Mystery Sound [Forensics]

Question: This transmission supposedly contains a secret flag, but I can’t decode it because of some interference. Can you help?

Flag: bronco{y0u_mu57_h4v3_4m4z1ng_h34r1ng}

We are given a WAV audio file to investigate. Analyzing the audio spectrogram, a long sequence of digital waves can be identified.

forensics8

forensics9

After manually inserting each bit and decoding them (had to repeat 6 times rip my eyes), the flag can be obtained.

forensics10

LAN Party [Forensics]

Question: My friend is SO MEAN! He changed my password on my home router and hid it in this Minecraft world. He even unmined the chunk I dug out…what a jerk. Ugh, now I am just here at the top of the world rather than at bedrock mining diamonds.

Flag: bronco{b1rd's_Ey3_View}

we are given Minecraft files to investigate. Unfortunately I could not solve this before the CTF ended, but I still attempted it with the help from the author. Since it was Minecraft forensics, I assume we had to analyze the chunk position in NBTExplorer to uncover hidden values. However, the author mentioned that another specific tool can be used to get the flag directly.

forensics11

By using uNmINeD to get a top down view of any Minecraft world, the flag can be obtained.

forensics12

Wiki Wiki Wiki [OSINT]

Question: Not much to go off here, but it’s all you need: Wikipedia and 128.125.52.138. The flag is not in the typical format, but wrap it in bronco{} before submitting. You will know when you find it.

Flag: bronco{cNi76bV2IVERlh97hP}

Just search the IP address on Wikipedia. The flag can be obtained from the latest changelog.

osint1

osint2

Electrical Engineering [Cryptography]

Question: I hate electrical engineering

Flag: bronco{rEsi5t_ev1L}

We are given a PDF file to investigate. The PDF had several 6-band resistors that seem to be the flag.

crypto3

Using this online tool to automatically calculate the Ω values for each resistor, the combined values can be decoded into the flag. Thanks @eror__404 for the sanity check.

crypto4

crypto5

Oh, Danny [Cryptography]

Question: When using AES in CBC mode, Danny has a habit of leaving messages in his initialization vectors. Can you find his secret message?

1
2
3
4
key = 73757065725f6b65795f73747265616d
pt1 = 4163636f7264696e6720746f20616c6c
pt2 = 206b6e6f776e206c617773206f662061
ct2 = 817ed4df4521cc2d6e746c45a834aa2d

Flag: bronco{d0nt_l3@k_ur_k3y}

We are given an AES key, plaintext and ciphertext to investigate. Since the challenge mentioned that the encryption method was CBC, we can essentially reverse the process to obtain the IV.

crypto6

I generated a Python script to reverse the encryption process and obtain the IV. This script was heavily inspired from @Krauq so credits to him.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from Crypto.Cipher import AES
from binascii import unhexlify

key = unhexlify("73757065725f6b65795f73747265616d")
ct2 = unhexlify("817ed4df4521cc2d6e746c45a834aa2d")
pt2 = unhexlify("206b6e6f776e206c617773206f662061")
pt1 = unhexlify("4163636f7264696e6720746f20616c6c")

# Decrypt ct2 to get "pt2 XOR ct1"
cipher = AES.new(key, AES.MODE_ECB)
decrypted_ct2 = cipher.decrypt(ct2)

# Calculate ct1
ct1 = bytes(a ^ b for a, b in zip(decrypted_ct2, pt2))

# Decrypt ct1 to get "pt1 XOR IV"
decrypted_ct1 = cipher.decrypt(ct1)

# Calculate IV
iv = bytes(a ^ b for a, b in zip(decrypted_ct1, pt1))
print(iv)

crypto7

Countries Unite [Misc]

Question: “yoshie” sent me a peculiar message. What could he possibly be trying to say?

Flag: bronco{diveristyequityinclusion}

We are given an image to investigate. The image had several flag emojis, just get the first letter of each country flag and the flag can be obtained.

misc1

BroncoCTF Crossword [Misc]

Question: I am really annoyed. I work at Bronco Venture Accelerator and instead of doing work, my boss is just sitting doing a crossword. And drinking lemon juice? WHY! I want to dump it on him and his paper. We need to make MONEY.

Flag: bronco{crosswords_do_not_increase_shareholder_value}

We are given a PDFF file to investigate. The PDF file was a crossword puzzle with white boxes covering some sections. Initially, I spent an hour doing the crossword puzzle and it lead to no information on the flag. Hence, I had to ask hints from Discord which mentioned something about lemon juice and paper. This obviously means the text “disappeared” as lemon juice on ink produces invisible ink.

misc2

Unfortunately I could not solve this before the CTF ended, but I still attempted it with the help from the author. The flag can actually be obtained with a simple CTRL+A (bruh).

misc3

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