ASLR Bypass — Contournement de la randomisation

Protection Exploit

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.