cr3 CTF 2024 Writeup Roundup
A cr3 CTF 2024 writeup roundup based on my public challenge notes.

This post preserves my original public notes for cr3 CTF 2024 Writeup Roundup. I kept the challenge-by-challenge structure close to the source Markdown and only cleaned up formatting, image paths, and repeated footer text so it reads cleanly on the website.
cr3 CTF 2024

Conclusion
Pwned flags: 5/47
Total Score: 154 points
Rank: 82nd
- Forensic
- Professional Programming and Coding
- Misc
- Sanitycheck
- Survey

Donut
Do you want some donuts? I have one for you :)

Solution Strategy
ls -a
Found that they have a .git folder
tree -a

After reviewing the Git commit history, I traced the previous changes.
/home/waaris_m/Downloads/for_donut/donut/.git/logs

git show 2a461812df0b80851da28cf6e69f3a2d84129b01

Sanitycheck
come join our discord server and find a flag there
Solution Strategy

Spurdanity-Check
In and out, 15-minute adventure.

Solution Strategy
try: input = raw_input
except NameError: pass
a, b = map(int, input().split(' '))
print(a + b)

Spurdo-Treasures
In an ancient temple, the famous bounty hunter Spurdo found a room with hidden ancient relics. Please help him to avoid traps that could be inside this room.

Solution Strategy
import math
import sys
def find_artifacts(L, R):
C_start = math.ceil(math.sqrt(2 * L))
C_end = math.floor(math.sqrt(2 * R))
for C in range(C_start, C_end + 1):
square_sum = C ** 2
a_low = max(L, square_sum - R)
a_high = min(R, square_sum - L)
if a_low <= a_high:
a = a_low
b = square_sum - a
if a != b and L <= b <= R:
return a, b
return -1, -1
def main():
input = sys.stdin.read
L, R = map(int, input().split())
a, b = find_artifacts(L, R)
print(a, b)
if __name__ == "__main__":
main()
