Writeup OverFlow0
Felipe Brasileiro
Esse é o writeup do desafio OverFlow0 do PicoCTF-2019. O nível desse desafio é muito fácil e só exige que o jogador saiba causar um Segmentation Fault
Reconhecimento
Igual ao primeiro desafio de Binary Exploitation, o PicoCTF nos da o código-fonte e o binário executável.
Ao analisar o código, é possível observar que, na função main, o arquivo flag.txt é lido e seu conteúdo é salvo na variável flag. Outra parte interessante desse código é a função signal, que faz o tratamento do sinal SIGSEGV ( Sinal do Segmentation Fault ) e utiliza a função sigsegv_handler
como handler.
Exploração
Dentro da função sigsegv_handler
, a variável flag é “printada”.
Então, temos que fazer o programa gerar o SIGSEGV e, para isso, precisamos provocar um erro de segmentação.
Enviando um monte de caracteres como argumento do programa, sobrescrevemos instruções necessárias para a execução do código, fazendo com que ele gere o SIGSEGV e assim pegamos a flag.