hacktricks/binary-exploitation/common-binary-protections-and-bypasses/stack-canaries/print-stack-canary.md

5 KiB

Imprimer le Stack Canary

{% hint style="success" %} Apprenez et pratiquez le piratage AWS :Formation HackTricks AWS Red Team Expert (ARTE)
Apprenez et pratiquez le piratage GCP : Formation HackTricks GCP Red Team Expert (GRTE)

Soutenez HackTricks
{% endhint %}

Augmenter le stack imprimé

Imaginez une situation où un programme vulnérable à un débordement de pile peut exécuter une fonction puts pointant vers une partie du débordement de pile. L'attaquant sait que le premier octet du canary est un octet nul (\x00) et que le reste du canary est composé d'octets aléatoires. Ensuite, l'attaquant peut créer un débordement qui écrase la pile jusqu'au premier octet du canary.

Ensuite, l'attaquant appelle la fonction puts au milieu de la charge utile qui va imprimer tout le canary (à l'exception du premier octet nul).

Avec ces informations, l'attaquant peut concevoir et envoyer une nouvelle attaque en connaissant le canary (dans la même session du programme).

Évidemment, cette tactique est très limitée car l'attaquant doit être capable d'imprimer le contenu de sa charge utile pour exfiltrer le canary et ensuite être capable de créer une nouvelle charge utile (dans la même session du programme) et envoyer le vrai débordement de tampon.

Exemples CTF :

Lecture arbitraire

Avec une lecture arbitraire comme celle fournie par les chaines de format, il pourrait être possible de divulguer le canary. Consultez cet exemple : https://ir0nstone.gitbook.io/notes/types/stack/canaries et vous pouvez lire sur l'abus des chaines de format pour lire des adresses mémoire arbitraires dans :

{% content-ref url="../../format-strings/" %} format-strings {% endcontent-ref %}

{% hint style="success" %} Apprenez et pratiquez le piratage AWS :Formation HackTricks AWS Red Team Expert (ARTE)
Apprenez et pratiquez le piratage GCP : Formation HackTricks GCP Red Team Expert (GRTE)

Soutenez HackTricks
{% endhint %}