#Type_Juggling & #Object_Reference on #PHP_Object_Injection
جالب است بدانید که در خصوص پایلود پایلود ریزی مثلا مقادیر Serialize شده پارامتر کوکی هم میتوان در خصوص دور زدن مکانیزم احراز هویت اقدام به اکسپلویت کردن آسیب پذیری هایی مانند Type_Juggling کرد,
به کد آسیب پذیری سمت چپ بالا دقت کنید, بصورت واضح دیده میشه که کوکی تنظیم شده بر روی auth در پارامتر Cookie قراره که در تابع ()unserialize ترجمه و در شرط زیرین پارامترهای username و password رو با مقادیر متغیرات مقابل را مقایسه و در صورت صحیح بودن متغیر admin$ رو معادل True قرار میدهد
خب اولین نکته اینجاست که compare استفاده شده از نوع loose هست که به معنی در نظر نگرفتن نوع داده های مقایسه هست که همین موضوع موجب آسیب پذیری است
در تصویر پست سمت چپ پایین میبینید که یک آرایه تعریف شده با دو value که b:1 هستند به معنیه Boolean True که همین Value که یک DataType محصوب میشه موجب مقایسه True == String میشه و نتیجه آنکه خروجی Condition میشود True و به این صورت متغیر admin$ برابر True خواهد بود
آسیب پذیری سمت راست رو هم به خودتون میسپارم...
@Unk9vvN
جالب است بدانید که در خصوص پایلود پایلود ریزی مثلا مقادیر Serialize شده پارامتر کوکی هم میتوان در خصوص دور زدن مکانیزم احراز هویت اقدام به اکسپلویت کردن آسیب پذیری هایی مانند Type_Juggling کرد,
به کد آسیب پذیری سمت چپ بالا دقت کنید, بصورت واضح دیده میشه که کوکی تنظیم شده بر روی auth در پارامتر Cookie قراره که در تابع ()unserialize ترجمه و در شرط زیرین پارامترهای username و password رو با مقادیر متغیرات مقابل را مقایسه و در صورت صحیح بودن متغیر admin$ رو معادل True قرار میدهد
خب اولین نکته اینجاست که compare استفاده شده از نوع loose هست که به معنی در نظر نگرفتن نوع داده های مقایسه هست که همین موضوع موجب آسیب پذیری است
در تصویر پست سمت چپ پایین میبینید که یک آرایه تعریف شده با دو value که b:1 هستند به معنیه Boolean True که همین Value که یک DataType محصوب میشه موجب مقایسه True == String میشه و نتیجه آنکه خروجی Condition میشود True و به این صورت متغیر admin$ برابر True خواهد بود
آسیب پذیری سمت راست رو هم به خودتون میسپارم...
@Unk9vvN