Uso di cat per superare 'Stack smash detected'

11

Sto provando ora un esercizio di overflow del buffer dal sito pwnable.kr Ho trovato la stringa che dovrebbe essere inserita per ottenere frunction ma ho ottenuto "Stack Smash Detected", quindi ho trovato una soluzione in rickgray.me

Suggeriscono (python -c 'print "A" * 52 + "\ xbe \ xba \ xfe \ xca"'; cat -) | nc pwnable.kr 9000

che funziona, In qualche modo l'aggiunta del comando "gatto" supera il canarino. Non capisco perché sia così

    
posta dafnahaktana 28.01.2016 - 14:55
fonte

1 risposta

3

Questo evita il rilevamento di frammenti di stack perché il controllo del cookie di stack / canarino avviene solo all'epilogo della funzione.

Dato che la sfida che hai postato richiede di distruggere direttamente qualcosa nello stack utilizzato in un controllo logico nella stessa funzione, il canarino non viene controllato quando ricevi la shell.

Il canarino previene principalmente contro lo smashing di stack per sovrascrivere l'indirizzo di ritorno.

Il commento sulla domanda relativa al comando cat presente per consentire il reindirizzamento input / output è corretto, altrimenti la shell si apre e viene immediatamente chiusa.

    
risposta data 28.01.2016 - 21:21
fonte

Leggi altre domande sui tag