4.2 KiB
Print Stack Canary
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Aumentar a pilha impressa
Imagine uma situação onde 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 canário é um byte nulo (\x00
) e o restante do canário são bytes aleatórios. Então, o atacante pode criar um estouro que sobrescreve a pilha até apenas o primeiro byte do canário.
Em seguida, o atacante chama a funcionalidade puts no meio do payload que irá imprimir todo o canário (exceto o primeiro byte nulo).
Com essa informação, o atacante pode elaborar e enviar um novo ataque conhecendo o canário (na mesma sessão do programa).
Obviamente, essa tática é muito restrita pois o atacante precisa ser capaz de imprimir o conteúdo de seu payload para exfiltrar o canário e então ser capaz de criar um novo payload (na mesma sessão do programa) e enviar o verdadeiro estouro de buffer.
Exemplos de CTF:
- https://guyinatuxedo.github.io/08-bof_dynamic/csawquals17_svc/index.html
- 64 bits, ASLR habilitado mas sem PIE, o primeiro passo é preencher um estouro até o byte 0x00 do canário para então chamar puts e vazar. Com o canário, um gadget ROP é criado para chamar puts para vazar o endereço de puts do GOT e um gadget ROP para chamar
system('/bin/sh')
Leitura Arbitrária
Com uma leitura arbitrária como a fornecida por strings de formato, pode ser possível vazar o canário. 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 %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.