ALICELAB // PERPIGNAN EXPLOITATION BINAIRE BUFFER OVERFLOW

BUFFER OVERFLOW

> 3 exercices progressifs en C (Linux x86-64)
> prérequis : bases du C, notions de pile et de GDB
> outils : gcc, gdb, python3, pwntools

Série de travaux pratiques pour comprendre et exploiter un buffer overflow. Chaque exercice est accompagné d'un fichier .c commenté et d'un guide d'exploitation pas à pas.


EXERCICES

exercice 01
vuln1 — Observer le débordement
Programme volontairement vulnérable : la fonction read() accepte 200 octets dans un buffer de 64. Observer comment les données débordent et écrasent les données adjacentes sur la pile. Analyse avec GDB.
gcc vuln1.c -o vuln1 -fno-stack-protector -z execstack -no-pie
exercice 02
ret2win — Rediriger l'exécution
La fonction secret() n'est jamais appelée dans le flot normal du programme. Objectif : écraser le pointeur de retour (RIP) pour y rediriger l'exécution. Introduit le calcul d'offset et la construction d'un payload.
gcc ret2win.c -o ret2win -fno-stack-protector -no-pie
exercice 03
shellcode — Injecter du code arbitraire
Injecter un shellcode x86-64 pour obtenir un shell /bin/sh. Introduit le NOP sled, l'adressage de la pile, et la désactivation temporaire de l'ASLR. Utilise pwntools pour la construction du payload.
gcc shellcode.c -o shellcode -fno-stack-protector -z execstack -no-pie

TÉLÉCHARGER LES SOURCES


RÉFÉRENCES