offical github repo:

https://github.com/x3ctf/challenges-2025/

p11n-trophy(baby,misc,sanity,cert): [445 solves]

shadowcone

By popular demand of a singular person, we have partnered with Let's Encrypt and obtained a limited number of personalized participation certificates. Available as long as supplies last. Out of fairness to other teams, please only download this certificate once per team.

The flag for this challenge is the very last sentence of this certificate, in full (includes capitalization and punctuation).

trophy-plus(baby,misc,cert): [42 solves]

shadowcone

We got a little bored, so we hid another flag in the personalized certificate of participation for you. Good luck hunting ^_^!

Note: You'll need the certificate from p11n-trophy for this challenge 😉

trophy-plus64(easy,misc,cert): [78 solves]

shadowcone

We got a little bored, so we hid another flag in the personalized certificate of participation for you. Good luck hunting ^_^!

Note: You'll need the certificate from p11n-trophy for this challenge 😉

count-the-mvms(easy,misc,cert): [15 solves]

shadowcone 

Your task is simple: Count all occurrences of MVM in your personalized trophy. I heard AI is supreme at OCR tasks, so this should be trivial in 2025.

Rules:
only count MVM
font does not matter
MVM lookalikes should not be counted
only count non-overlapping MVM
you get extra brownie points if your solution finds the flag in under 5 seconds (brownie points do not affect scoring)
There is a custom flag format for this challenge: x3c{th3r3_4re_[number]_MVMs_1n_my_c3rtif1cat3_[md2]} where [number] should be replaced by the decimal representation of your MVM count, and [md2] should be the MD2 representation of the string representation of the number. For example, if you found 100 MVMs in your certificate, the corresponding flag would be x3c{th3r3_4re_100_MVMs_1n_my_c3rtif1cat3_e39096f2d59363a0b177a2773ac6aa0e}.

If you are unsure whether your solution counts the correct number, kindly ask your most junior player to double check manually. It should only take a couple hours to check this number by hand.

foundations(easy,misc,osint): [183 solves]

rebane2001

I wonder what the first ever x3CTF flag was...

Note: The flag format on this challenge is slightly different because we can't go back to 2024 and change it. This challenge does not require any active attacks.

hydraulic-press(easy,misc): [28 solves]

rdx4.2

Just decode and decompress this a couple of times and get the flag! Might contain some padding :3

[hydraulic-press.tar.gz](<https://x3c.tf/api/v2/challenges/hydraulic-press/handout/0>)

hydraulic-press.tar.gz