Problema di shellcode per un servizio remoto (codifica)

0

Ho un esercizio per sfruttare un servizio remoto dopo una breve finestra di dialogo con l'overflow del buffer dello stack. Ho scaricato un file binario su Ubuntu 14.04 locale e l'ho testato con gdb.  Quello che faccio è creare un file in wxHexeditor con uno shellcode. Quindi copialo e incollalo nella finestra di dialogo (input per la funzione gets). Sia il terminale che un file utilizzano la stessa codifica (iso 8859-15). È possibile sovrascrivere con successo l'indirizzo ret con alcuni semplici simboli ASCII come A o B. Ma quando si tratta di uno shellcode reale o addirittura di una slitta NOP i miei simboli vengono sostituiti. Lo vedo in hexdump della pila. Questo problema genera diverse domande:

Come posso passare ancora questo problema usando l'input manuale dello shellcode o è possibile?

Il problema persisterà se scrivo uno script che invia shellcode come messaggio dopo la finestra di dialogo?

Come posso verificare se il problema di codifica è nell'impostazione del sistema ma non in binario che traduce l'input in utf8 o qualcosa del genere?

La risposta a una di queste domande sarebbe molto apprezzata.

Aggiornamento:

A questo punto si tratta principalmente di codifica. Ecco un esempio di cosa sta succedendo.

Questo è quello che ho in wxHexEditor. Vedi il finale:

Equestoèquellochehonellapiladopoilmioinput

Sarebbe perfetto con il termine AAAA (41 41 41 41).

È come quando si copia incolla tra diverse applicazioni e dati sfusi a causa della diversa codifica. Ma qui ho iso 8859-15 nel terminale (LANG = en ..) e lo stesso iso 8859-15 in wxHexEditor. Forse c'è da qualche parte utf8 in mezzo.

    
posta humme1 30.06.2016 - 17:47
fonte

0 risposte

Leggi altre domande sui tag