One Gadget
Informations de base
One Gadget permet d'obtenir un shell au lieu d'utiliser system et "/bin/sh". One Gadget trouvera à l'intérieur de la bibliothèque libc un moyen d'obtenir un shell (execve("/bin/sh")
) en utilisant juste une adresse.
Cependant, il y a généralement des contraintes, les plus courantes et faciles à éviter sont comme [rsp+0x30] == NULL
. Comme vous contrôlez les valeurs à l'intérieur du RSP, il vous suffit d'envoyer quelques valeurs NULL supplémentaires pour éviter la contrainte.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-a9184dfe1ac75f4fc3c47142fed943c4cf304801%252Fimage%2520%28615%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=b501aacf&sv=1)
Pour obtenir l'adresse indiquée par One Gadget, vous devez ajouter l'adresse de base où libc
est chargée.
One Gadget est d'une grande aide pour les techniques d'écriture arbitraire 2 Exec et peut simplifier les chaînes ROP car vous n'avez besoin d'appeler qu'une seule adresse (et de remplir les conditions requises).
Last updated