[CTF GEMA] OverflowMe
CTF GEMA Groupe 2025
Niveau de Difficulté : Very-Easy
Catégorie du Challenge : Pwn
Description :
Un programme vulnérable vous attend… Mais que se passe-t-il si vous lui donnez trop de données ?
Saurez-vous exploiter cette faiblesse et obtenir le flag ?
Objectif : Exploitez un Buffer Overflow pour obtenir un accès privilégié !
Steps to Solve
D'après le code fournis :
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
void print_flag() {
FILE *file = fopen("flag.txt", "r");
if (file == NULL) {
puts("Flag introuvable ! Contacte l'admin.");
return;
}
char flag[100];
fgets(flag, sizeof(flag), file);
fclose(file);
printf("🎉 Bravo ! Voici ton flag : %s\n", flag);
}
int main() {
int secret = 0xdeadbeef;
char name[100] = {0};
read(0, name, 0x100);
if (secret == 0x1337) {
print_flag();
} else {
puts("I guess you're not cool enough to see my secret");
}
}
L'idée est de remplacer la valeur de la variable secret par 1337.
A l'aide de gdb :

Plaçons un breakpoint et inspectons le registre :

Il nous faut donc remplir notre buffer et remplacer la valeur indiquer :

FLAG: FLAG{Buff3r_0v3rFl0w_34$y}