C'è qualche svantaggio nel dichiarare sempre alcuni caratteri errati di default durante la generazione di exploit?

3

Quando si impostano i caratteri errati per il codice shell, c'è qualche svantaggio se si presume che si debba contrassegnare \ x00 e \ x0a come male?

    
posta nyxgeek 31.01.2016 - 09:28
fonte

2 risposte

5

Per shellcode l'unico problema potenziale sono i vincoli di dimensione. Ma assumere che i byte nulli siano cattivi è una cattiva abitudine. Potresti pensare erroneamente che un arresto anomalo non sia sfruttabile perché gli unici indirizzi pop / ROP pop pop iniziano con un byte null.

Determinare i byte errati esatti non è troppo dispendioso in termini di tempo e consiglio sempre di farlo in quanto può risparmiare tempo se devi risolvere il tuo shellcode.

    
risposta data 31.01.2016 - 12:54
fonte
1

Generalmente, poiché NULL e Line Feed sono sempre caratteri non validi. Ma la dimensione del tuo codice aumenterà. Non automatizzare questo tho.

Ad esempio in IA32 Assembler puoi sostituire l'istruzione

B8 01000000    MOV EAX,1          // Set the register EAX to 0x000000001

Con

33C0           XOR EAX,EAX        // Set the register EAX to 0x000000000
40             INC EAX            // Increase EAX to 0x00000001

Questo richiede anche meno byte per la codifica, ma in generale sarà più noioso sostituire i caratteri al crescere del numero di caratteri non validi.

    
risposta data 31.01.2016 - 10:44
fonte

Leggi altre domande sui tag