Sto imparando i buffer overflow e sto sviluppando il mio primissimo exploit.
C'è un processo del server che ascolta un socket e avvia un nuovo processo per ogni client. Il processo figlio ha una vulnerabilità di buffer overflow che sto sfruttando.
Il mio exploit funziona se avvio il server usando gdb, tuttavia ottengo un segfault quando viene eseguito il codice exploit se avvio semplicemente il server senza gdb.
La mia domanda è: gdb disattiva automaticamente alcuni meccanismi di protezione, come la protezione da aslr / stack ecc? Quale sarebbe una possibile spiegazione di questo comportamento?
Ho compilato il server con -zexecstack -fno-stack-protector, non riesco ancora a sfruttarlo senza gdb.
Questo è su Debian x86. Eseguendo il server con gdb intendo che eseguo, gdb server 'e poi digito, eseguo' nella console gdb, nessun breakpoint o altro. In questo modo il mio exploit ha successo (effettua una richiesta di arricciatura sul mio server)