ASLR Bypass — Contournement de la randomisation
★★★★★
Rappel ASLR
L'ASLR randomise les adresses de base (pile, tas, libc, mmap) à chaque exécution, rendant les adresses imprévisibles. Le contournement repose principalement sur la fuite d'une adresse pour recalculer les bases.
Techniques
# 1. Info leak : fuiter une adresse libc/PIE
puts(puts@got) -> base_libc = leak - libc.sym['puts']
# 2. Partial overwrite : ne modifier que les octets bas
# (les 12 bits de page ne sont pas randomisés)
# 3. Brute force (32 bits : entropie faible, parfois possible)
# 4. ret2plt pour appeler puts sans connaître la libc d abord Workflow type
Étape 1 : leak (souvent via la GOT et une fonction d'affichage) → calcul des bases. Étape 2 : construire la chaîne ROP finale avec les adresses absolues recalculées. Combiner avec NX/canary bypass selon les protections.