#Unserialize #Use_After_Free #PHP_Internal
یکی از مواردی که در دوره تست نفوذ وب تیم تحقیقاتی Unk9vvN بهش بصورت ویژه پرداخت میشه، مبحث کشف آسیب پذیری های Binary مبتنی بر کامپایلر زبان PHP خواهد بود که بر بستر مقادیر Serialize امکان رخدادش وجود داره،

برای مثال در مقادیر Serialize شدن یک آرایه، امکان رزرو حافظه Heap بوجود خواهد آمد و از طرفی در مقادیر Serialize شده یک سمبل معادل اشاره گر Reference وجود داره که در تصویر ، در متغیر exploit$ اون انتهای مقادیر Serialize شده بصورت یک R بزرگ میبینیدش

بصورت خلاصه امکان رزور یک حافظه مبتنی بر تعریف ArrayObject وجود داره و امکان اینکه اون رو آزادش کنیم و بعد با استفاده از R بزرگ که نشان Reference هستش، به Element مورد تعریف حافظه Heap اشاره کرده و بنوعی آسیب پذیری Use After Free رو در حافظه بوجود بیاریم، این عملکرد اشتباه Garbage Collector هستش.

البته تا به امروز روش و تکنیک های متعددی در این مبحث مطرح شده که پیشنیاز فهمشون ، کتاب PHP Internals هستش، که ما بصورت مفصل در دوره تست نفوذ وب بخش Insecure Deserialization به این موضوع خواهیم پرداخت.

@Unk9vvN