GlacierCTF2025 - Flip Flip Hooray!
Flip Flip Hooray! is a pwn challlenge I authored in GlacierCTF 2025. Some
hours before the CTF end it had 18 solves.
“Flip Flip Hooray!” is a very simple kernel pwn involving the technique published by Google Project Zero on a recent blogpost.
We are given a latest arm64 kernel with a new additional syscall, flipper:
| |
The syscall is used to flip one single bit.
GlacierCTF2025 - typstmk
typstmk is a misc challenge I authored in GlacierCTF 2025. Some hours
before the CTF end it had 19 solves.
In this challenge, you are given a service running the following simple script:
| |
It gets a single typst file and compiles it twice, providing timings as in “Typst Lotto”.
GlacierCTF2025 - Typst Lotto
Typst lotto is a misc challenge I authored in GlacierCTF 2025. Some hours
before the CTF end it had 20 solves.
In this challenge you get an instance that runs typst watch. Then, an “admin”
compiles documents with random numbers. After the admin has compiled the
document with a random number, the player can further compile documments. The
goal is to recover the secret sequence that the admin wrote (15 random numbers
from 0 to 9).
GlacierCTF2025 - gitresethard
gitresethard is a simple misc challenge I authored in GlacierCTF 2025. Hours
before the CTF ends, the challenge had 166 solves.
In this challenge you receive a tarball containing the “disk” that hosted a git repository where a malicious employee did a git reset hard and a git push force. The task of the challenge is to recover a missing commit.
This challenge is not that security-oriented, initially it was something different and then it was re-purposed into a beginner git/misc challenge.
TiKZ Introductory Guide
Welcome to this introductory guide to the hard and horrible world of figures in LaTeX. Today we will be learning TiKZ. I personally use Typst+CeTZ for my personal work, but I recently started a PhD in Information Security, and for collaboration and publishing purposes I’m tied to LaTeX. So, I decided to learn TiKZ from the basics and stop copy pasting, hopefully.
First, let me reference two important resources:
- TiKZ Manual: https://tikz.dev/
- LaTeX Unofficial Reference: https://tug.org/texinfohtml/latex2e.html
Basic environment
Let’s start with how you can start writing a TiKZ figure:
GlacierCTF2024 - ksmaze
ksmaze is a linux kernel related challenge I authored in GlacierCTF2024. It had 1 solve 2h before the end of the 24h CTF. It categorizes in the hard side of the challenges.
You have the original CTFd distfile with a locally deployable version in [3]
The challenge is an unprivileged SSH instance of qemu running a custom rootfs and kernel:
| |
We are running unprivileged and in a custom kernel:
GlacierCTF2024 - Schrödinger Compiler
Schrödinger Compiler is a C++ compiler related challenge I authored in GlacierCTF2024. It had 19 solves 3h before the end of the 24h CTF. It categorizes in the medium side of the challenges.
You have the original CTFd distfile with a locally deployable version in [1]
The challenge is jailed per connection and has the following behaviour:
| |
It basically receives a tarfile of a main.cpp, compiles with no output
and returns.
GlacierCTF2024 - typstastic
typstastic is a typst related challenge I authored in GlacierCTF2024. It had
50 solves 3h before the end of the 24h CTF. It categorizes in the easier side
of the challenges.
You have the original CTFd distfile with a locally deployable version in [1]
The challenge is jailed per connection and has the following behaviour:
| |
It basically receives a tarfile with a typst project, compiles it with typst 0.12.0 and provides the resulting PDF back.
R3CTF - Thief Writeup
This was an easy challenge related to Computer Vision:
| |
You had to predict in a image recognition model if a certain image was used to train the model or not.
R3CTF - h1de@ndSe3k 2 Writeup
This is a second stage of the “hidenandseek” R3CTF challenge.
In this case we have that ben, the NPC with the flag:
- Is invisible
- Randomly teleports between (0, -50, 0) (512, 50, 512)
- newtp only works in “ben’s range”
The main issue is that the teleportation range is much wider now, we can’t have many tries. Sitting there and waiting for ben to appear wasted some time, he only spawned a few times and was too far away.
R3CTF - hideandseek Writeup
This challenge involves a Minecraft server where an NPC is teleported each 10 seconds randomly in the (0, 0, 0) (128, -50, 128) range.
You have a command /newtp X Y Z that lets you teleport.
One of the main issues is that the NPC tends to suffocate as it spawns generally between blocks without any space (it doesn’t check for an empty space to teleport to).
In this challenge we got a bit lucky and found the NPC without the need of an script as we got him in a big cave.
R3CTF - r1system Writeup
This challenge was the continuation of r0system and also wasn’t involved with crypto that much.
I still don’t know if they release r1system as the “real” final stage of r0system but they had a mistake or if the mistake was actually intended:
| |
r1system had a few differences from r0system, the main one was being able to send messages through the “PublicChannel”.
R3CTF - r0system Writeup
This challenge wasn’t that much about crypto. You had a login system via passwords and you can also register new users.
After you registered a new user you could reset the password, here was the misuse, as you could reset the password from other users. There was also a functionality that printed the private and public keys of the users.
So you had to register a new user, reset the password from Alice and Bob and then log as them. Finally you have to get both pub/priv keypairs from both and recover the encrypted password.
luksury Writeup - Insomnihack Final 2024
This post shows the writeup for the “luksury” challenge from he Insomnihack Final of 2024.
Challenge consisted in a LUKS2 encrypted disk image you had to bruteforce:
| |
The challenge also clearly hinted the usage of rockyou.txt to bruteforce the
password.
As it’s LUKS2, we couldn’t directly use hashcash and we used
bruteforce-luks as it seemed good
& quick enough. The problem was that the program would hang on trying the first
key, also if you tried to interact with the disk file in your own system, it
also hanged.