ROP sur ARM64 : les gadgets et le registre de lien
Les gadgets AArch64 finissent par ret, qui branche vers x30 : la chaîne s'enfile dans le registre de lien via des gadgets ldp. Puis PAC et BTI la brisent.
Les gadgets AArch64 finissent par ret, qui branche vers x30 : la chaîne s'enfile dans le registre de lien via des gadgets ldp. Puis PAC et BTI la brisent.
Une politique seccomp qui bannit execve retire le shell du jeu ; les attaquants pivotent : ouvrir le flag, le lire, le renvoyer. La chaîne ORW.
Pas de gadget pop rdx ? Le code de démarrage du runtime C a une séquence universelle qui charge plusieurs registres et fait un appel contrôlé. Construisez-la avec pwntools.
Quand les gadgets sont rares, forgez un cadre de signal. Un appel sigreturn restaure tous les registres depuis la pile d'un coup — construisez-en un avec pwntools pour appeler execve.
Quand le débordement dépasse à peine l'adresse de retour, déplacez rsp vers un tampon maîtrisé et exécutez-y la vraie chaîne. Tutoriel pwntools.
NX est actif et le binaire est minuscule, mais la libc est mappée et pleine de code utile. Fuitez sa base malgré l'ASLR, puis retournez dans system("/bin/sh").
Avec NX, le shellcode injecté est mort : on réutilise le code existant. Trouver des gadgets, bâtir une chaîne execve avec pwntools, puis voir CET et CFI la casser.