📖
Introducao à segurança digital
  • Introdução à Segurança Digital
  • Introdução a Linux
  • Criptografia
    • Introdução
    • Definições e Objetivos
    • Criptografia Clássica
    • Criptografia Moderna
    • Guia de Python para criptografia
  • Redes
    • Ataques
      • Arp Cache Poisoning
      • DNS Cache Poisoning
      • Slow Loris
      • Syn Flood
      • WPA Cracking
      • Deauth
    • Ferramentas
      • Resumo das Ferramentas
      • Suíte Aircrack
      • Wireshark
      • Netcat
      • Nmap
      • Netstat
      • Kathará
    • Pacote & Protocolo
    • Camada de Rede
    • Camada de Transporte
    • IANA
    • Three-way Handshake
    • DHCP
    • DNS
    • NAT
    • Pentest
      • FTP
      • SMB
      • SSH
      • VPN
    • Avançado
  • Web
    • Semana 1
      • Introdução à Web
      • Entendendo as URLs
      • Introdução ao HTML e ao CSS
      • Directory Traversal
      • Introdução ao Javascript
      • Cross Site Scripting (XSS)
      • Cookies e sessões
      • Protocolo HTTP
      • Protocolo HTTPS
      • 2020 - XML External Entities (XML) Injection
    • Semana 2
      • Servidores Web
      • PHP (Programação server-side)
      • Command Injection
      • Cookie Poisoning
      • Bancos de Dados
      • SQL Injection
      • Insecure Direct Object Reference (IDOR)
      • 2020 - Portas e Serviços
      • 2020 - API's e Serviços Rest
  • CTF
  • Engenharia Reversa
    • Arquivos
    • Registradores e tipos de dados
    • Hello World em x86
    • Pilha
    • GDB
    • Ghidra
  • Pwning
    • Integer Overflow
    • Buffer Overflow
    • Pwntools
    • Shellcode
    • Proteções
  • Hardware
    • Introdução ao Hardware Hacking
    • Introdução ao Infravermelho
Powered by GitBook
On this page

Was this helpful?

  1. Pwning

Integer Overflow

Uma das anomalias mais simples que talvez possa ser explorada é o Integer Overflow.

Quando um inteiro é somado muitas vezes, seu número pode ultrapassar sua capacidade de representação.

Por exemplo, um inteiro de 4 bytes pode representar do número -2147483648 ao 2147483647. Se somarmos 1 a um inteiro de 4 bytes com valor 2147483647, ele se tornará -2147483648 por causa da sua representação em complemento de 2 e esse comportamento é chamado de Integer Overflow. O comportamento oposto que acontece ao subtrair 1 de -2147483648 é chamado de Integer Underflow.

Uma forma de explorar esse comportamento é caso esse inteiro esteja sendo usado como um offset de alguma posição de memória ou uma expressão condicional (if). Fazendo um Integer Overflow, você pode ter acesso a uma posição de memória que o programa não permitia, ou ultrapassar alguma checagem de uma forma não pretendida.

Em geral, um Integer Overflow é uma vunerabilidade bem simples, e na maioria dos casos, não é possível explorar muito com ele. Mas uma forma de overflow bem mais perigosa que o Integer Overflow é o Buffer Overflow, que veremos a seguir.

PreviousPwningNextBuffer Overflow

Last updated 4 years ago

Was this helpful?