You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[calc_tcache_idx.c](calc_tcache_idx.c)|| Demonstrating glibc's tcache index calculation.||||
13
-
|[fastbin_dup.c](glibc_2.35/fastbin_dup.c)| <ahref="https://wargames.ret2.systems/level/how2heap_fastbin_dup_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Tricking malloc into returning an already-allocated heap pointer by abusing the fastbin freelist. |latest |||
14
-
|[fastbin_dup_into_stack.c](glibc_2.35/fastbin_dup_into_stack.c)| <ahref="https://wargames.ret2.systems/level/how2heap_fastbin_dup_into_stack_2.23"title="Debug Technique In Browser">:arrow_forward:</a> | Tricking malloc into returning a nearly-arbitrary pointer by abusing the fastbin freelist. |latest ||[9447-search-engine](https://github.com/ctfs/write-ups-2015/tree/master/9447-ctf-2015/exploitation/search-engine), [0ctf 2017-babyheap](https://web.archive.org/web/20181104155842/http://uaf.io/exploitation/2017/03/19/0ctf-Quals-2017-BabyHeap2017.html)|
15
-
|[fastbin_dup_consolidate.c](glibc_2.35/fastbin_dup_consolidate.c)| <ahref="https://wargames.ret2.systems/level/how2heap_fastbin_dup_consolidate_2.23"title="Debug Technique In Browser">:arrow_forward:</a> | Tricking malloc into returning an already-allocated heap pointer by putting a pointer on both fastbin freelist and the top chunk. |latest ||[Hitcon 2016 SleepyHolder](https://github.com/mehQQ/public_writeup/tree/master/hitcon2016/SleepyHolder)|
13
+
|[fastbin_dup.c](glibc_2.35/fastbin_dup.c)| <ahref="https://wargames.ret2.systems/level/how2heap_fastbin_dup_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Tricking malloc into returning an already-allocated heap pointer by abusing the fastbin freelist. |< 2.43 |[patch](https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=malloc/malloc.c;h=fa854fc4b8f75b09902ea7ed1180487beb6e4683;hp=7811152d9d9eba3e0f0a3416d9944cc142caaafe;hb=bf1015fb2d7e4057925481960626533f8571a2fb;hpb=e3062b06c5767f672baf9574c4d7cbebf7d0ee6e)||
14
+
|[fastbin_dup_into_stack.c](glibc_2.35/fastbin_dup_into_stack.c)| <ahref="https://wargames.ret2.systems/level/how2heap_fastbin_dup_into_stack_2.23"title="Debug Technique In Browser">:arrow_forward:</a> | Tricking malloc into returning a nearly-arbitrary pointer by abusing the fastbin freelist. |< 2.43 |[patch](https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=malloc/malloc.c;h=fa854fc4b8f75b09902ea7ed1180487beb6e4683;hp=7811152d9d9eba3e0f0a3416d9944cc142caaafe;hb=bf1015fb2d7e4057925481960626533f8571a2fb;hpb=e3062b06c5767f672baf9574c4d7cbebf7d0ee6e)|[9447-search-engine](https://github.com/ctfs/write-ups-2015/tree/master/9447-ctf-2015/exploitation/search-engine), [0ctf 2017-babyheap](https://web.archive.org/web/20181104155842/http://uaf.io/exploitation/2017/03/19/0ctf-Quals-2017-BabyHeap2017.html)|
15
+
|[fastbin_dup_consolidate.c](glibc_2.35/fastbin_dup_consolidate.c)| <ahref="https://wargames.ret2.systems/level/how2heap_fastbin_dup_consolidate_2.23"title="Debug Technique In Browser">:arrow_forward:</a> | Tricking malloc into returning an already-allocated heap pointer by putting a pointer on both fastbin freelist and the top chunk. |< 2.43 |[patch](https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=malloc/malloc.c;h=fa854fc4b8f75b09902ea7ed1180487beb6e4683;hp=7811152d9d9eba3e0f0a3416d9944cc142caaafe;hb=bf1015fb2d7e4057925481960626533f8571a2fb;hpb=e3062b06c5767f672baf9574c4d7cbebf7d0ee6e)|[Hitcon 2016 SleepyHolder](https://github.com/mehQQ/public_writeup/tree/master/hitcon2016/SleepyHolder)|
16
16
|[unsafe_unlink.c](glibc_2.35/unsafe_unlink.c)| <ahref="https://wargames.ret2.systems/level/how2heap_unsafe_unlink_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Exploiting free on a corrupted chunk to get arbitrary write. | latest ||[HITCON CTF 2014-stkof](http://acez.re/ctf-writeup-hitcon-ctf-2014-stkof-or-modern-heap-overflow/), [Insomni'hack 2017-Wheel of Robots](https://gist.github.com/niklasb/074428333b817d2ecb63f7926074427a)|
17
17
|[house_of_spirit.c](glibc_2.35/house_of_spirit.c)| <ahref="https://wargames.ret2.systems/level/how2heap_house_of_spirit_2.23"title="Debug Technique In Browser">:arrow_forward:</a> | Frees a fake fastbin chunk to get malloc to return a nearly-arbitrary pointer. | latest ||[hack.lu CTF 2014-OREO](https://github.com/ctfs/write-ups-2014/tree/master/hack-lu-ctf-2014/oreo)|
18
18
|[poison_null_byte.c](glibc_2.35/poison_null_byte.c)| <ahref="https://wargames.ret2.systems/level/how2heap_poison_null_byte_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Exploiting a single null byte overflow. | latest ||[PlaidCTF 2015-plaiddb](https://github.com/ctfs/write-ups-2015/tree/master/plaidctf-2015/pwnable/plaiddb), [BalsnCTF 2019-PlainNote](https://gist.github.com/st424204/6b5c007cfa2b62ed3fd2ef30f6533e94?fbclid=IwAR3n0h1WeL21MY6cQ_C51wbXimdts53G3FklVIHw2iQSgtgGo0kR3Lt-1Ek)|
@@ -34,8 +34,8 @@ We came up with the idea during a hack meeting, and have implemented the followi
34
34
|[tcache_house_of_spirit.c](glibc_2.35/tcache_house_of_spirit.c)| <ahref="https://wargames.ret2.systems/level/how2heap_tcache_house_of_spirit_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Frees a fake chunk to get malloc to return a nearly-arbitrary pointer. | > 2.25 |||
35
35
|[house_of_botcake.c](glibc_2.35/house_of_botcake.c)| <ahref="https://wargames.ret2.systems/level/how2heap_house_of_botcake_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Bypass double free restriction on tcache. Make `tcache_dup` great again. | > 2.25 |||
36
36
|[tcache_stashing_unlink_attack.c](glibc_2.35/tcache_stashing_unlink_attack.c)| <ahref="https://wargames.ret2.systems/level/how2heap_tcache_stashing_unlink_attack_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Exploiting the overwrite of a freed chunk on small bin freelist to trick malloc into returning an arbitrary pointer and write a large value into arbitraty address with the help of calloc. | > 2.25 ||[Hitcon 2019 one punch man](https://github.com/xmzyshypnc/xz_files/tree/master/hitcon2019_one_punch_man)|
37
-
|[fastbin_reverse_into_tcache.c](glibc_2.35/fastbin_reverse_into_tcache.c)| <ahref="https://wargames.ret2.systems/level/how2heap_fastbin_reverse_into_tcache_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Exploiting the overwrite of a freed chunk in the fastbin to write a large value into an arbitrary address. |> 2.25 |||
38
-
|[house_of_mind_fastbin.c](glibc_2.35/house_of_mind_fastbin.c)| <ahref="https://wargames.ret2.systems/level/how2heap_house_of_mind_fastbin_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Exploiting a single byte overwrite with arena handling to write a large value (heap pointer) to an arbitrary address |latest |||
37
+
|[fastbin_reverse_into_tcache.c](glibc_2.35/fastbin_reverse_into_tcache.c)| <ahref="https://wargames.ret2.systems/level/how2heap_fastbin_reverse_into_tcache_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Exploiting the overwrite of a freed chunk in the fastbin to write a large value into an arbitrary address. |2.26 - 2.42 |[patch](https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=malloc/malloc.c;h=fa854fc4b8f75b09902ea7ed1180487beb6e4683;hp=7811152d9d9eba3e0f0a3416d9944cc142caaafe;hb=bf1015fb2d7e4057925481960626533f8571a2fb;hpb=e3062b06c5767f672baf9574c4d7cbebf7d0ee6e)||
38
+
|[house_of_mind_fastbin.c](glibc_2.35/house_of_mind_fastbin.c)| <ahref="https://wargames.ret2.systems/level/how2heap_house_of_mind_fastbin_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Exploiting a single byte overwrite with arena handling to write a large value (heap pointer) to an arbitrary address |< 2.43 |[patch](https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=malloc/malloc.c;h=fa854fc4b8f75b09902ea7ed1180487beb6e4683;hp=7811152d9d9eba3e0f0a3416d9944cc142caaafe;hb=bf1015fb2d7e4057925481960626533f8571a2fb;hpb=e3062b06c5767f672baf9574c4d7cbebf7d0ee6e)||
39
39
|[house_of_storm.c](glibc_2.27/house_of_storm.c)| <ahref="https://wargames.ret2.systems/level/how2heap_house_of_storm_2.27"title="Debug Technique In Browser">:arrow_forward:</a> | Exploiting a use after free on both a large and unsorted bin chunk to return an arbitrary chunk from malloc| < 2.29 |||
40
40
|[house_of_gods.c](glibc_2.24/house_of_gods.c)| <ahref="https://wargames.ret2.systems/level/how2heap_house_of_gods_2.24"title="Debug Technique In Browser">:arrow_forward:</a> | A technique to hijack a thread's arena within 8 allocations | < 2.27 |||
41
41
|[decrypt_safe_linking.c](glibc_2.35/decrypt_safe_linking.c)| <ahref="https://wargames.ret2.systems/level/how2heap_decrypt_safe_linking_2.34"title="Debug Technique In Browser">:arrow_forward:</a> | Decrypt the poisoned value in linked list to recover the actual pointer | >= 2.32 |||
0 commit comments