hacktricks/reversing-and-exploiting/linux-exploiting-basic-esp/common-binary-protections-and-bypasses/stack-canaries/print-stack-canary.md

3.9 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é 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 estouro de buffer real.

Exemplo de CTF: https://guyinatuxedo.github.io/08-bof_dynamic/csawquals17_svc/index.html

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: