Tags: buffer overflow attacks 

Rating:

# ROPi

O desafio consistia em explorar um buffer overflow e **pular** entre funções para exibir corretamente, o workflow necessário para isto era, seguindo os nomes das funções:

1. ret (configurava o filedescriptor para flag.txt)
2. ori (realizada o read() no fd configurado anteriormente)
3. pro (finalmente exibia a flag)

Apesar de parecer simples, as duas primeiras funções exigiam chaves para a executar, ou seja, alguns valores predeterminados deviam estar na memoria, além disso, o espaço era diminuto então você deveria encaixar perfeitamente cada chamada para a funçao:

```
./ropi-exploit.py | nc ropi.vuln.icec.tf 6500        
Benvenuti al convegno RetOri Pro!
Vuole lasciare un messaggio?
[+] aperto
[+] leggi
[+] stampare
IceCTF{italiano_ha_portato_a_voi_da_google_tradurre}
```

Analise o código fonte do exploit para maiores explicações.

Original writeup (https://github.com/318BR/IceCTF/tree/master/2016/Stage3/ROPi).