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