Sfruttare un buffer overflow nel terminale ubuntu [chiuso]

0

Sto cercando di sfruttare alcuni buffer overflow attraverso il terminale linux di un programma che ho scritto per l'autoistruzione. Sto inserendo una stringa usnig scanf("%s") e il mio obiettivo è sovrascrivere l'indirizzo di ritorno sul frame dello stack il mio problema è il seguente, ho bisogno di sovrascrivere l'indirizzo di ritorno per diventare il valore di 0x08048934 quindi quando si prende in considerazione l'endianità all'interno del mio computer ho bisogno di inserire la sequenza di byte valore esadecimale di

0x34 0x89 0x04 0x08 

ed è qui che sto trovando difficoltà .... Mi sembra che non possa entrare direttamente nel terminale di Ubuntu i valori dei caratteri extended-ascii , come quello con il valore di 0x89 o 137 in decimale che è un valore esteso ...

Come faccio a superare questa difficoltà e creare una stringa che contenga i seguenti valori e mi permetta di creare l'indirizzo desiderato

P.S. Quando si usa ctrl + shift + u e il valore esadecimale 0x89 il carattere viene codificato come un carattere c1 utf-8 quindi il valore letterale lo ottengo \xc2\x89 anche questo potrebbe non essere chiaro, potrei dipendere da alcune stampe di output del programma come l'indirizzo o ecc, quindi devo digitare il valore manipolato durante il runtime del programma (dopo che ha iniziato l'esecuzione) e non prima

    
posta DrPrItay 17.01.2017 - 15:14
fonte

1 risposta

1
echo -en '\x34\x89\x04\x08' | your_program
    
risposta data 17.01.2017 - 15:16
fonte

Leggi altre domande sui tag