1.7 KiB
Sobrescrevendo um chunk liberado
{{#include ../../banners/hacktricks-training.md}}
Várias das técnicas propostas de exploração de heap precisam ser capazes de sobrescrever ponteiros dentro de chunks liberados. O objetivo desta página é resumir as potenciais vulnerabilidades que poderiam conceder esse acesso:
Uso Simples Após Liberação
Se for possível para o atacante escrever informações em um chunk livre, ele poderia abusar disso para sobrescrever os ponteiros necessários.
Liberação Dupla
Se o atacante puder free
duas vezes o mesmo chunk (liberando outros chunks entre potencialmente) e fazê-lo estar 2 vezes no mesmo bin, seria possível para o usuário alocar o chunk mais tarde, escrever os ponteiros necessários e então alocá-lo novamente, acionando as ações do chunk sendo alocado (por exemplo, ataque de fast bin, ataque de tcache...)
Overflow de Heap
Pode ser possível transbordar um chunk alocado tendo ao lado um chunk liberado e modificar alguns cabeçalhos/ponteiros dele.
Overflow de Um a Menos
Neste caso, seria possível modificar o tamanho do chunk seguinte na memória. Um atacante poderia abusar disso para fazer um chunk alocado ter um tamanho maior, então free
-lo, fazendo com que o chunk fosse adicionado a um bin de um tamanho diferente (maior), então alocar o tamanho falso, e o ataque terá acesso a um chunk com um tamanho que é maior do que realmente é, concedendo assim uma situação de chunks sobrepostos, que é explorável da mesma forma que um overflow de heap (ver seção anterior).
{{#include ../../banners/hacktricks-training.md}}