Overwriting a freed chunk

Unterstützen Sie HackTricks

Einige der vorgeschlagenen Techniken zur Heap-Ausnutzung erfordern die Möglichkeit, Zeiger innerhalb freigegebener Chunks zu überschreiben. Das Ziel dieser Seite ist es, die potenziellen Schwachstellen zusammenzufassen, die diesen Zugriff ermöglichen könnten:

Einfache Use-After-Free

Wenn es für den Angreifer möglich ist, Informationen in einem freien Chunk zu schreiben, könnte dies missbraucht werden, um die benötigten Zeiger zu überschreiben.

Doppeltes Freigeben

Wenn der Angreifer zweimal denselben Chunk freigeben kann (möglicherweise andere Chunks dazwischen freigeben) und es schafft, dass er 2-mal im selben Bin ist, wäre es möglich für den Benutzer, den Chunk später zuzuweisen, die benötigten Zeiger zu überschreiben und ihn dann erneut zuzuweisen, was die Aktionen des zugewiesenen Chunks auslöst (z. B. schneller Bin-Angriff, tcache-Angriff...).

Heap-Überlauf

Es könnte möglich sein, einen zugewiesenen Chunk zu überlaufen, der anschließend einen freigegebenen Chunk hat, und einige Header/Zeiger davon zu ändern.

Off-by-One-Überlauf

In diesem Fall wäre es möglich, die Größe des folgenden Chunks im Speicher zu ändern. Ein Angreifer könnte dies ausnutzen, um einen zugewiesenen Chunk eine größere Größe haben zu lassen, ihn dann freizugeben, sodass der Chunk einer Bin-Größe (größer) hinzugefügt wird, dann die gefälschte Größe zuzuweisen, und der Angriff wird Zugriff auf einen Chunk mit einer Größe haben, die größer ist, als sie tatsächlich ist, was daher eine Situation mit überlappenden Chunks ermöglicht, die auf die gleiche Weise wie ein Heap-Überlauf ausnutzbar ist (siehe vorherige Sektion).

Unterstützen Sie HackTricks

Last updated