unc4nny Posted April 6, 2020 Posted April 6, 2020 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!
j3r3mias Posted April 17, 2020 Posted April 17, 2020 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.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.