unc4nny Posted April 6, 2020 at 07:57 PM Share Posted April 6, 2020 at 07:57 PM Oi. Estou tentando resolver um desafio de pwn, e o desafio eh basicamente realizar um buffer overflow. Contanto, o binario esta com praticamente todas as opcoes de seguranca ativas: Eles dao o codigo fonte do arquivo para nos estudarmos: Pelo oq eu pude observar do codigo, eu preciso escrever o suficiente na variavel overflowme para que ele sobrescreva o valor do parametro key. Mas o binario esta com a opcao de canary ativada. Lendo por ai eu descobri que existem dois jeitos de lidar com o canary: fazendo leaking e brute forcing. Aparentemente o brute forcing eh para situacoes que o proprio binario faca forks dentro de si mesmo para executar um possivel parametro q eu passei pra ele (servidores pro exemplo). Entao soh me sobra a opcao de leaking, isso se eu estiver correto. Alguem consegue me ajudar? Obg desde ja! Link to comment Share on other sites More sharing options...
j3r3mias Posted April 17, 2020 at 05:18 PM Share Posted April 17, 2020 at 05:18 PM Boa tarde, como o binário é x86, não precisa lidar com o Stack Canary diretamente para resolver o desafio, pois o endereço que você precisa sobrescrever (key) vai ser utilizado com a modificação antes do retorno da função func, então basta achar o offset (52) e sobrescrever o endereço de key. Segue um exemplo mandando 0xcocaco1a: (python -c "print 'Z' * 52 + '\x1a\xc0\xca\xc0'"; cat) | ./prog Então, basta adaptar para o endereço solicitado pelo desafio. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.