4.2 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:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial do PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
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 real estouro de buffer.
Exemplos de CTF:
- https://guyinatuxedo.github.io/08-bof_dynamic/csawquals17_svc/index.html
- 64 bits, ASLR ativado mas sem PIE, o primeiro passo é preencher um estouro até o byte 0x00 do canary para então chamar puts e vazá-lo. Com o canary, um gadget ROP é criado para chamar puts e 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 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/" %} strings de formato {% endcontent-ref %}
Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial do PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.