
مستودع لتعلّم مختلف تقنيات استغلال الكومة (Heap).
هذا المستودع مخصص لتعلّم تقنيات استغلال الكومة (heap exploitation) المختلفة.
نستخدم إصدارات Libc الخاصة بـ Ubuntu كمعيار ذهبي. يتم التحقق من عمل كل تقنية على إصدارات Ubuntu المقابلة.
يمكنك تشغيل apt source libc6 لتنزيل الشيفرة المصدرية لـ Libc التي تستخدمها على نظام تشغيل قائم على Debian. يمكنك أيضًا النقر على ▶️ لتصحيح التقنية في متصفحك باستخدام gdb.
جاءتنا الفكرة خلال لقاء هاكاثون، وقد نفّذنا التقنيات التالية:
| الملف | ▶️ | التقنية | إصدار Glibc | التصحيح | تحديات CTF المنطبقة |
|---|---|---|---|---|---|
| first_fit.c | توضيح سلوك first-fit في glibc malloc. | ||||
| calc_tcache_idx.c | توضيح حساب فهرس tcache في glibc. | ||||
| fastbin_dup.c | ▶️ | خداع malloc لإرجاع مؤشر كومة مُخصَّص مسبقًا عبر استغلال قائمة fastbin الحرة. | < 2.43 | patch | |
| fastbin_dup_into_stack.c | ▶️ | خداع malloc لإرجاع مؤشر شبه عشوائي عبر استغلال قائمة fastbin الحرة. | < 2.43 | patch | 9447-search-engine, 0ctf 2017-babyheap |
| fastbin_dup_consolidate.c | ▶️ | خداع malloc لإرجاع مؤشر كومة مُخصَّص مسبقًا عبر وضع مؤشر في كل من قائمة fastbin الحرة وtop chunk. | < 2.43 | patch | Hitcon 2016 SleepyHolder |
| unsafe_unlink.c | ▶️ | استغلال free على قطعة (chunk) تالفة للحصول على كتابة عشوائية. | latest | HITCON CTF 2014-stkof, Insomni'hack 2017-Wheel of Robots | |
| house_of_spirit.c | ▶️ | تحرير قطعة fastbin مزيفة لجعل malloc يُرجع مؤشرًا شبه عشوائي. | latest | hack.lu CTF 2014-OREO | |
| poison_null_byte.c | ▶️ | استغلال تجاوز سعة بايت null واحد. | latest | PlaidCTF 2015-plaiddb, BalsnCTF 2019-PlainNote | |
| house_of_lore.c | ▶️ | خداع malloc لإرجاع مؤشر شبه عشوائي عبر استغلال قائمة smallbin الحرة. | latest | ||
| overlapping_chunks.c | ▶️ | استغلال الكتابة فوق حجم قطعة محررة في unsorted bin لجعل تخصيص جديد يتداخل مع قطعة موجودة | < 2.29 | patch | hack.lu CTF 2015-bookstore, Nuit du Hack 2016-night-deamonic-heap |
| overlapping_chunks_2.c | ▶️ | استغلال الكتابة فوق حجم قطعة قيد الاستخدام لجعل تخصيص جديد يتداخل مع قطعة موجودة | < 2.29 | patch | |
| mmap_overlapping_chunks.c | استغلال قطعة mmap قيد الاستخدام لجعل تخصيص جديد يتداخل مع قطعة mmap حالية | latest | |||
| house_of_force.c | ▶️ | استغلال ترويسة Top Chunk (Wilderness) لجعل malloc يُرجع مؤشرًا شبه عشوائي | < 2.29 | patch | Boston Key Party 2016-cookbook, BCTF 2016-bcloud |
| unsorted_bin_into_stack.c | ▶️ | استغلال الكتابة فوق قطعة محررة في قائمة unsorted bin الحرة لإرجاع مؤشر شبه عشوائي. | < 2.29 | patch | |
| unsorted_bin_attack.c | ▶️ | استغلال الكتابة فوق قطعة محررة في قائمة unsorted bin الحرة لكتابة قيمة كبيرة في عنوان عشوائي | < 2.29 | patch | 0ctf 2016-zerostorage |