Bufferoverflow
Bufferoverflow
Bufferoverflow
Estouros de buffer podem ser disparados por entradas que são projetadas para executar
código, ou alterar o modo como o programa funciona. Isso pode resultar em comportamento
errado do programa, incluindo erros de acesso à memória, resultados incorretos, parada total
do sistema, ou uma brecha num sistema de segurança. Portanto, eles são a base de muitas
vulnerabilidade de software e pode ser explorados maliciosamente.
https://pt.wikipedia.org/wiki/Transbordamento_de_dados
Quando os dados são inseridos, ele entra na pilha em ordem inversa. A pilha cresce
em direção ao EBP. Se conseguirmos empurrar com sucesso mais dados para a pilha
que ele alocou, podemos possivelmente passar o EBP para o EIP (vermelho) e ter o EIP
substituído e apontar nosso código.
x/20s $eip
#visualizar 20b em formato
Strig registrador eip
run ou r
#execucao
b* 0x5555555 # adciona
break point
A fim de evitar que um invasor pule de forma confiável para, por exemplo, uma determinada função
explorada na memória, o ASLR organiza aleatoriamente as posições de espaço de endereço das
principais áreas de dados de um processo, incluindo a base do executável e as posições da pilha, pilha
e bibliotecas.
https://en.wikipedia.org/wiki/Address_space_layout_randomization
https://medium.com/@buff3r/basic-buffer-overflow-on-64-bit-architecture-3fb74bab3558
Obrigado!!!