Jump to content

Usar buffer overflow para fazer leak de canary


unc4nny

Recommended Posts

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 to comment
Share on other sites

  • 2 weeks later...

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

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...