Dichiarazione di non responsabilità: sto facendo questa domanda esclusivamente a scopo didattico.
Sto cercando di concatenare alcune chiamate di funzione usando la programmazione orientata al rendimento, sfruttando un binario vulnerabile che usa strcpy()
. Una di queste chiamate di funzione dovrebbe essere una chiamata a system()
(per eseguire qualche comando di shell). Sfortunatamente, l'indirizzo di system()
contiene un byte NULL
che guiderà per strcpy()
per interrompere la copia del payload una volta osservato questo byte.
La mia domanda quindi è: qual è l'approccio migliore per risolvere questo problema?
Ho già controllato la libc per funzioni simili a system()
, ma non ho trovato nulla. Un'altra mia idea sarebbe quella di chiamare fork()
, exec()
e wait()
successivamente. Ciò tuttavia aumenterebbe la complessità del payload.