Transbordamento de dados: diferenças entre revisões

Sem alteração do tamanho ,  16 de julho de 2013
m
→‎Exploração baseada em pilha: Correção de erro de digitação
m (→‎Exploração baseada em pilha: Correção de erro de digitação)
* Sobrescrever o endereço de retorno da pilha. Uma vez que a função retorna, a execução irá continuar no endereço de retorno especificado pelo atacante, geralmente um buffer preenchido por entrada do usuário.
* Sobrescrever um ponteiro de função, ou tratador de exceção, que é posteriormente executado.
Com um método chamado “trampolining”, se um endereço de um dado fornecido pelo usuário é desconhecido, mas a sua localização é guardada em um registrador, então o endereço de retorno pode ser sobrescrito com um opcode que fará a execução saltar para os dados fornecidos pelo usuário. Se a localização é guardada num registrador R, então um salto de execução para a localização contendo o opcode para um salto para R, chamada para R ou uma instrução similar, causará a execução de dados fornecidos pelo usuário. A localização de opcodes adequados, or bytes na memória, podem ser encontradas em DLLs ou no próprio executável. EntretnatoEntretanto, o endereçamento de opcodes tipicamente não pode conter nenhum caractere nulo e as localizações desses opcodes podem mudar entre aplicações e versões do sistema operacional. O Projeto Metasploit é um banco de dados de opcodes, apesar de apenas os opcodes encontrados nos sistemas Windows estarem listados.
Não se deve confundir estouro de buffer baseado em pilha com estouro de pilha.
Essas vulnerabilidade são descobertas geralmente com uso de um fuzzer.
37

edições