House of Lore | Small bin Attack

Apoya a HackTricks

Información Básica

Código

Objetivo

  • Insertar un trozo pequeño falso en el small bin para luego poder asignarlo. Ten en cuenta que el trozo pequeño añadido es el falso creado por el atacante y no uno falso en una posición arbitraria.

Requisitos

  • Crear 2 trozos falsos y enlazarlos entre sí y con el trozo legítimo en el small bin:

  • fake0.bk -> fake1

  • fake1.fd -> fake0

  • fake0.fd -> legit (necesitas modificar un puntero en el trozo liberado del small bin a través de alguna otra vulnerabilidad)

  • legit.bk -> fake0

Entonces podrás asignar fake0.

Ataque

  • Se asigna un trozo pequeño (legit), luego se asigna otro para evitar la consolidación con el trozo superior. Luego, se libera legit (moviéndolo a la lista de bins no ordenados) y se asigna un trozo más grande, moviendo legit al small bin.

  • Un atacante genera un par de trozos pequeños falsos y realiza el enlace necesario para evitar las comprobaciones de integridad:

  • fake0.bk -> fake1

  • fake1.fd -> fake0

  • fake0.fd -> legit (necesitas modificar un puntero en el trozo liberado del small bin a través de alguna otra vulnerabilidad)

  • legit.bk -> fake0

  • Se asigna un trozo pequeño para obtener legit, haciendo que fake0 esté en la lista superior de small bins

  • Se asigna otro trozo pequeño, obteniendo fake0 como un trozo, permitiendo potencialmente leer/escribir punteros dentro de él.

Referencias

Apoya a HackTricks

Last updated