#Nodejs #Deserialization Exploiting
تصویر شماره 1 حاوی یک کد سمت سرور است که دارای آسیب پذیری Deserialization در پارامتر دریافتی Cookie هستش,

اگر دقت کنید متغییر obj مستقیما مقدار Base64 شده پارامتر Cookie که در Object بالای یعنی str به عنوان یک ()toString ترجمه شده است را (str)unserialize کرده و اجرا میشود,

خب حالا بهره برداری از این آسیب پذیری مستلزم این است که یک پیلود RCE در خصوص پارسر زبان Nodejs طراحی بشود, خب در تصویر دوم من یک پیلود از Github پیدا کردم که به نظرم پیلود خوبی هست, همونطور که میبینید دو require به net و child_process زده شده که امکان ایجاد یک سوکت بر بستر یک پروسس زیرین رو فراهم میکنه,

نکته ای که در این پیلود مهمه اینه که هکر با استفاده از,تعریف یک () bracket در انتهای پیلود یک تماس بصورت invoked function ایجاد کرده که بعد از پارس شدن کد در سمت سرور بصورت اتوماتیک اجرا هم بشود,

مورد بعدی تصویر 3 هستش که پیلود ساخته شده میبایست یک بار به CharCode اینکودشده و سپس با اضافه کردن {} پیلود رو به فرمت Json تعریف کرده و نهایتا Base64 شده و آماده ارسال.

REF
@Unk9vvN