BCACTF 2025 - Misc
July 14, 2025
Misc
dessert_time
Desc
I’m a very good planner, but my robotics competition really fried my brain! I remember eating something for the past few weeks but I just can’t seem to remember what. Can you please help me? Here’s my schedule for
https://docs.google.com/spreadsheets/d/152qYlpG-FRBdHEfemX1_zD6dX1y1BO2JVmlxRRTYhDM/edit?usp=sharing
Solution
Keyword Search: With the clue that you eat it in the morning and sometimes as a snack in the evening, I searched for letters that when combined would form the name of the food. I found the letters that make up “Apple_pie”.
Match with Clue: The letters that make up “Apple pie” appear at times that match your clues:
Morning: Most of the letters that make up “Apple pie” appear on the morning schedule (between 4am and 10am). Evening: Some of the letters “e” also appear at night, which matches the clue “snack at night”.
Flag name: The characters that appear before the curly brackets { are b, c, a, c, t, f. Combined, these characters form the flag name: bcactf.
Flag Contents: The characters that come between { and } are A, p, l, e, _, p, i, e, S, _, A, r, e, y, u, M, M, y.
If these characters are rearranged, they will form a sensible sentence that relates to the previous answer: Apple_pieS_Are_yuMMy (Apple pies are yummy).
Flag
bcactf{Apple_pieS_Are_yuMMy}
expletive
Desc
oh no! it seems like only some of the characters on my keyboard are working…
nc challs.bcactf.com 38421
Solve
Given this file
blacklist = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
def security_check(s):
return any(c in blacklist for c in s) or s.count('_') > 50
BUFFER_SIZE = 36
while True:
cmds = input("> ")
if security_check(cmds):
print("invalid input")
else:
if len(cmds) > BUFFER_SIZE:
print(open("flag.txt", "r").read())
break
else:
print("nope")
So, to get the flag, you need to provide an input that satisfies three conditions:
- It must not contain any alphanumeric characters (a-z, A-Z, 0-9).
- The number of underscore characters (
_
) must not exceed 50. - The total length of the input string must be greater than 36 characters.
python3 -c "print('_' * 37)" | nc challs.bcactf.com 38421 ─╯
> bcactf{fudG3_5hOo7_d4rn100}
Flag
bcactf{fudG3_5hOo7_d4rn100}
molasses
Desc
This GIF shows the flag letter-by-letter but it’s really slow and I don’t want to wait all day. Maybe there’s a faster way to get the flag?
Solution
Just extract GIF to frames
i use this https://ezgif.com/split
Flag
bcactf{is_it_gif_or_gif_a51fd7ace416}