Pointer Redirecting
Ponteiros de String
Se uma chamada de função for usar o endereço de uma string que está localizada na pilha, é possível abusar do estouro de buffer para sobrescrever este endereço e colocar um endereço para uma string diferente dentro do binário.
Se, por exemplo, uma chamada de função system
for usar o endereço de uma string para executar um comando, um atacante poderia colocar o endereço de uma string diferente na pilha, export PATH=.:$PATH
e criar no diretório atual um script com o nome da primeira letra da nova string pois este será executado pelo binário.
Você pode encontrar um exemplo disso em:
32 bits, altere o endereço para a string de flags na pilha para que seja impressa pelo
puts
Ponteiros de Função
Mesmo que o ponteiro de string, mas aplicado a funções, se a pilha contiver o endereço de uma função que será chamada, é possível alterá-lo (por exemplo, para chamar system
).
Você pode encontrar um exemplo em:
Referências
Last updated