mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 17:16:10 +00:00
6 KiB
6 KiB
Verificações de Segurança das Funções de Heap
Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você quiser ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial 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 repositórios HackTricks e HackTricks Cloud.
unlink
Essa função remove um bloco de uma lista duplamente encadeada. Verificações comuns garantem que a estrutura da lista encadeada permaneça consistente ao desvincular blocos.
- Verificações de Consistência:
- Verifique se
P->fd->bk == P
eP->bk->fd == P
. - Mensagem de erro:
corrupted double-linked list
_int_malloc
Essa função é responsável por alocar memória da heap. As verificações aqui garantem que a memória não seja corrompida durante a alocação.
- Verificação de Tamanho do Fastbin:
- Ao remover um bloco de um fastbin, certifique-se de que o tamanho do bloco esteja dentro da faixa do fastbin.
- Mensagem de erro:
malloc(): memory corruption (fast)
- Verificação de Consistência do Smallbin:
- Ao remover um bloco de um smallbin, certifique-se de que os links anteriores e posteriores na lista duplamente encadeada sejam consistentes.
- Mensagem de erro:
malloc(): smallbin double linked list corrupted
- Verificação de Faixa de Memória do Unsorted Bin:
- Garanta que o tamanho dos blocos no unsorted bin esteja dentro dos limites mínimo e máximo.
- Mensagem de erro:
malloc(): memory corruption | malloc(): invalid next size (unsorted)
- Verificação de Consistência do Unsorted Bin (Primeiro Cenário):
- Ao inserir um bloco restante no unsorted bin, verifique se
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
. - Mensagem de erro:
malloc(): corrupted unsorted chunks
- Verificação de Consistência do Unsorted Bin (Segundo Cenário):
- Igual à verificação anterior, mas acionada ao inserir após dividir um bloco rápido ou pequeno.
- Mensagem de erro:
malloc(): corrupted unsorted chunks 2
_int_free
Essa função libera memória previamente alocada. As verificações aqui ajudam a garantir a desalocação adequada de memória e a prevenir a corrupção de memória.
- Verificação de Limite do Ponteiro:
- Garanta que o ponteiro sendo liberado não esteja envolvendo a memória.
- Mensagem de erro:
free(): invalid pointer
- Verificação de Tamanho:
- Garanta que o tamanho do bloco sendo liberado seja pelo menos
MINSIZE
ou um múltiplo deMALLOC_ALIGNMENT
. - Mensagem de erro:
free(): invalid size
- Verificação de Tamanho do Fastbin:
- Para blocos fastbin, garanta que o tamanho do próximo bloco esteja dentro dos limites mínimo e máximo.
- Mensagem de erro:
free(): invalid next size (fast)
- Verificação de Dupla Liberação do Fastbin:
- Ao inserir um bloco em um fastbin, garanta que o bloco na cabeça não seja o mesmo que está sendo inserido.
- Mensagem de erro:
double free or corruption (fasttop)
- Verificação de Consistência do Fastbin:
- Ao inserir em um fastbin, garanta que os tamanhos do bloco na cabeça e do bloco sendo inserido sejam iguais.
- Mensagem de erro:
invalid fastbin entry (free)
- Verificação de Consistência do Top Chunk:
- Para blocos não fastbin, garanta que o bloco não seja o mesmo que o top chunk.
- Mensagem de erro:
double free or corruption (top)
- Verificação de Limites de Memória:
- Garanta que o próximo bloco por memória esteja dentro dos limites da arena.
- Mensagem de erro:
double free or corruption (out)
- Verificação do Bit Prev_inuse:
- Garanta que o bit prev_inuse no próximo bloco esteja marcado.
- Mensagem de erro:
double free or corruption (!prev)
- Verificação de Tamanho Normal:
- Garanta que o tamanho do próximo bloco esteja dentro de faixas válidas.
- Mensagem de erro:
free(): invalid next size (normal)
- Verificação de Consistência do Unsorted Bin:
- Ao inserir um bloco coalescido no unsorted bin, verifique se
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
. - Mensagem de erro:
free(): corrupted unsorted chunks
Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você quiser ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial 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 repositórios HackTricks e HackTricks Cloud.