Return oriented programming (ROP) - Perché ignora ASLR e cosa sono pop / pop / ret?

2

Sto cercando di capire il ROP e di lottare con le seguenti due domande:

  • Spesso leggo che ROP ignora ASLR e DEP. Mentre è chiaro per me ROP è un modo perfetto per evitare DEP, non vedo come sta bypassando ASLR. È perché la sezione del codice non è randomizzata?

  • Sto anche leggendo molto su questi gadget pop / pop / ret ma non capisco perché siano necessari. non c'è nessun gadget che termina in un ret abbastanza buono?

posta user66875 20.06.2017 - 09:40
fonte

1 risposta

4

ROP è solo un bypass per DEP - ASLR è in realtà la protezione contro ROP. La sezione del codice è casuale ed è per questo che non puoi (normalmente) usare ROP contro ASLR - per bypassarlo usando ROP, avrai bisogno di una fuga di informazioni che rivela come lo spazio degli indirizzi è stato cambiato.

Come per i gadget pop / pop / ret, questi sono usati nel contesto dell'utilizzo di SEH per l'esecuzione del codice - un mezzo per aggirare alcuni metodi di analisi / protezione diversi da DEP e ASLR.

Ecco una spiegazione per POP, POP, RET nel contesto di SEH: link . Per quanto riguarda ROP, la migliore risorsa che conosco sono i tutorial di Corelan: link

    
risposta data 20.06.2017 - 09:53
fonte

Leggi altre domande sui tag