Le buffer d'entrée Str
pour scanf("%s", Str)
est de 500 bytes, et est alloué sur le stack.
Une entrée dans stdio de plus de 500 bytes peut donc provoquer un buffer overflow, ce qui peut permettre la réécriture du stack et permettre l'exécution d'une ROP-chain.
C'est une vulnérabilité assez considérable qui peut permettre l'exécution de code arbitraire sur la machine si correctement exploitée.
Vulnérabilité buffer overflow dans le programme du challenge 5 de l'édition 2017
Tu veux dire, sur ta machine ? Si tu veux exécuter du code, au lieu de faire des ROPs, il suffit d'utiliser un compilateur :)
En tout cas, ce n'est ni un problème ni le but de n'exercice ;-)
Il faut nécessairement une intervention utilisateur pour déclencher l'exploit, oui :) Et il s'agissait juste du report d'une vulnérabilité dans un des programmes fournis précompilés.
C'est quoi ton scénario d'attaque ? Au lieu d'envoyer un binaire malicieux, tu envoies ça à la victime avec des données à passer dans l'entrée standard et un tuto pour corrompre sa machine ?
Enfin, la vulnérabilité était connue, voulue, et ne sert de toute façon absolument à rien :)
Tant mieux dans ce cas :) Et non, mais il faut être plus ingénieux pour exploiter des vulnérabilités voyons ;)
Tu peux toujours essayer de faire une ROP chain qui décode le flag :D
haha je n'en vois pas l'intérêt :) la repl node + ida me suffisent :p