Stavo testando un semplice programma in C con protezione canarino da stack. Ho tentato di bypassare la protezione sovrascrivendo l'indirizzo di ritorno della funzione e sovrascrivendo l'indirizzo principale. Lo sto sovrascrivendo con l'indirizzo di una funzione all'interno del programma di destinazione. Ottengo il seguente risultato che mi porta a credere che un attacco sia possibile:
Harilevatolosmash,masembracheabbiatentatodisaltarenellafunzionetarget,cheè"yo". Ho tentato di manipolare qualsiasi indirizzo a cui stava tentando di accedere, ma senza fortuna.
La mia domanda è, è possibile un ulteriore sfruttamento? Termina come risultato di SIGSEGV (ad esempio, l'accesso a 0x1010 ...) o il rilevamento delle canarie?
L'idea è nata da questo articolo
Il programma: