hacktricks/binary-exploitation/common-binary-protections-and-bypasses/stack-canaries/print-stack-canary.md
2024-12-12 13:56:11 +01:00

4.8 KiB

Imprimir Stack Canary

{% hint style="success" %} Aprenda e pratique Hacking AWS:Treinamento HackTricks AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)

Apoie o HackTricks
{% endhint %}

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 essa informação, 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.

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. Verifique 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/" %} strings de formato {% endcontent-ref %}

{% hint style="success" %} Aprenda e pratique Hacking AWS:Treinamento HackTricks AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)

Apoie o HackTricks
{% endhint %}