Ir para conteúdo

Usar buffer overflow para fazer leak de canary


unc4nny

Posts Recomendados

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:

image.png.3b6f6f3d2e4bf1e9a2aa37cd46de299e.png

Eles dao o codigo fonte do arquivo para nos estudarmos:

image.png.ef93631982010fc26bbc9622cfdfbdd1.png

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 para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

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 para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...