First part of TD5
This commit is contained in:
parent
eceb4717df
commit
33f23e8538
9 changed files with 204 additions and 0 deletions
32
content/secu_logicielle/td5-stackoverflow_shellcode/index.md
Normal file
32
content/secu_logicielle/td5-stackoverflow_shellcode/index.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: "Sécurité logicielle : TD 5 stack overflow et shellcode"
|
||||
date: 2023-02-10
|
||||
tags: ["Assembleur", "x86"]
|
||||
categories: ["Sécurité logicielle", "TD"]
|
||||
---
|
||||
|
||||
## Partie 1
|
||||
|
||||
Avec l'aide de `pframe`, nous pouvons voir que lorsque notre boucle itère pour
|
||||
la onzième fois, l'affectation `t[11]` écrase `i` et le remet à 0. A ce moment
|
||||
notre boucle reviens à départ; une boucle infinie se produit alors. C'est la
|
||||
conséquence du *buffer overflow* causée par une mauvaise maitrise des boucles et
|
||||
variables associées.
|
||||
|
||||
## Partie 2
|
||||
|
||||
### question 1 et 2
|
||||
|
||||
Effectivement le code vu en cours est repris dans cet exemple. Nous sommes
|
||||
cependant en présence de code *C* avec du code assembleur directement écrit en
|
||||
*hexadécimal*.
|
||||
|
||||
### question 4
|
||||
|
||||
Lors de l'execution de notre attache en l'observant avec gdb, nous pouvons
|
||||
clairement les éléments de notre attaque : les éléments de la pile contenant les
|
||||
adresses vers notre *shellcode*, les paffing avec des `nop` et le *shellcode*.
|
||||
|
||||
On voit aussi apparaitre notre *Instruction Pointer* dans la pile lorsque notre
|
||||
shellcode est exécuté. Les différents paramètres pour **l'appel système** se
|
||||
mettent alors en places.
|
Loading…
Add table
Add a link
Reference in a new issue