hacktricks/binary-exploitation/common-binary-protections-and-bypasses/stack-canaries/print-stack-canary.md

4.8 KiB

Imprimir Stack Canary

Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Ampliar stack impresso

Imagine uma situação em que um programa vulnerável a estouro de pilha pode executar uma função puts apontando para parte do estouro de pilha. O atacante sabe que o primeiro byte do canary é um byte nulo (\x00) e o restante do canary são bytes aleatórios. Então, o atacante pode criar um estouro que sobrescreve a pilha até apenas o primeiro byte do canary.

Em seguida, o atacante chama a funcionalidade puts no meio da carga útil que irá imprimir todo o canary (exceto o primeiro byte nulo).

Com essas informações, o atacante pode criar e enviar um novo ataque conhecendo o canary (na mesma sessão do programa).

Obviamente, essa tática é muito restrita, pois o atacante precisa ser capaz de imprimir o conteúdo de sua carga útil para extrair o canary e então ser capaz de criar uma nova carga útil (na mesma sessão do programa) e enviar o real estouro de buffer.

Exemplos de CTF:

Leitura Arbitrária

Com uma leitura arbitrária como a fornecida por strings de formato pode ser possível vazar o canary. Confira este exemplo: https://ir0nstone.gitbook.io/notes/types/stack/canaries e você pode ler sobre abusar de strings de formato para ler endereços de memória arbitrários em:

{% content-ref url="../../format-strings/" %} format-strings {% endcontent-ref %}

Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks: