
Ein Repository zum Erlernen verschiedener Heap-Exploitation-Techniken.
Dieses Repo dient zum Erlernen verschiedener Heap-Exploitation-Techniken.
Wir verwenden die Libc-Releases von Ubuntu als Goldstandard. Jede Technik wurde verifiziert, um auf den entsprechenden Ubuntu-Releases zu funktionieren.
Du kannst apt source libc6 ausführen, um den Quellcode der Libc herunterzuladen, die du auf einem Debian-basierten Betriebssystem verwendest. Du kannst auch auf ▶️ klicken, um die Technik in deinem Browser mit gdb zu debuggen.
Wir kamen während eines Hack-Meetings auf die Idee und haben die folgenden Techniken implementiert:
| Datei | ▶️ | Technik | Glibc-Version | Patch | Anwendbare CTF-Challenges |
|---|---|---|---|---|---|
| first_fit.c | Demonstriert das First-Fit-Verhalten von glibc malloc. | ||||
| calc_tcache_idx.c | Demonstriert die tcache-Indexberechnung von glibc. | ||||
| fastbin_dup.c | ▶️ | Bringt malloc dazu, einen bereits zugewiesenen Heap-Pointer zurückzugeben, indem die fastbin-Freeliste missbraucht wird. | < 2.43 | Patch | |
| fastbin_dup_into_stack.c | ▶️ | Bringt malloc dazu, einen nahezu beliebigen Pointer zurückzugeben, indem die fastbin-Freeliste missbraucht wird. | < 2.43 | Patch | 9447-search-engine, 0ctf 2017-babyheap |
| fastbin_dup_consolidate.c | ▶️ | Bringt malloc dazu, einen bereits zugewiesenen Heap-Pointer zurückzugeben, indem ein Pointer sowohl in die fastbin-Freeliste als auch in den Top Chunk eingetragen wird. | < 2.43 | Patch | Hitcon 2016 SleepyHolder |
| unsafe_unlink.c | ▶️ | Nutzt free auf einem korrupten Chunk aus, um beliebiges Schreiben zu erreichen. | neueste | HITCON CTF 2014-stkof, Insomni'hack 2017-Wheel of Robots | |
| house_of_spirit.c | ▶️ | Gibt einen gefälschten fastbin-Chunk frei, damit malloc einen nahezu beliebigen Pointer zurückgibt. | neueste | hack.lu CTF 2014-OREO | |
| poison_null_byte.c | ▶️ | Nutzt einen einzelnen Null-Byte-Overflow aus. | neueste | PlaidCTF 2015-plaiddb, BalsnCTF 2019-PlainNote | |
| house_of_lore.c | ▶️ | Bringt malloc dazu, einen nahezu beliebigen Pointer zurückzugeben, indem die smallbin-Freeliste missbraucht wird. | neueste | ||
| overlapping_chunks.c | ▶️ | Nutzt das Überschreiben der Größe eines freigegebenen Chunks im unsorted bin aus, um eine neue Allokation mit einem bestehenden Chunk überlappen zu lassen | < 2.29 | Patch | hack.lu CTF 2015-bookstore, Nuit du Hack 2016-night-deamonic-heap |
| overlapping_chunks_2.c | ▶️ | Nutzt das Überschreiben der Größe eines belegten Chunks aus, um eine neue Allokation mit einem bestehenden Chunk überlappen zu lassen | < 2.29 | Patch | |
| mmap_overlapping_chunks.c | Nutzt einen belegten mmap-Chunk aus, um eine neue Allokation mit einem aktuellen mmap-Chunk überlappen zu lassen | neueste | |||
| house_of_force.c | ▶️ | Nutzt den Header des Top Chunks (Wilderness) aus, um malloc dazu zu bringen, einen nahezu beliebigen Pointer zurückzugeben | < 2.29 | Patch | Boston Key Party 2016-cookbook, BCTF 2016-bcloud |