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.
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